Skip to content

Commit 852b456

Browse files
committed
Fix code to conform to new creator apply scheme
1 parent bd2e47c commit 852b456

File tree

12 files changed

+29
-25
lines changed

12 files changed

+29
-25
lines changed

compiler/src/dotty/tools/backend/jvm/BytecodeWriters.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ trait BytecodeWriters {
8181
trait AsmpBytecodeWriter extends BytecodeWriter {
8282
import scala.tools.asm
8383

84-
private val baseDir = Directory(None.get).createDirectory() // FIXME missing directoy
84+
private val baseDir = new Directory(None.get).createDirectory() // FIXME missing directoy
8585

8686
private def emitAsmp(jclassBytes: Array[Byte], asmpFile: dotty.tools.io.File): Unit = {
8787
val pw = asmpFile.printWriter()

compiler/src/dotty/tools/dotc/ast/Trees.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,13 +1013,15 @@ object Trees {
10131013

10141014
@sharable val EmptyTree: Thicket = genericEmptyTree
10151015
@sharable val EmptyValDef: ValDef = genericEmptyValDef
1016-
@sharable val ContextualEmptyTree: Thicket = EmptyTree() // an empty tree marking a contextual closure
1016+
@sharable val ContextualEmptyTree: Thicket = new EmptyTree() // an empty tree marking a contextual closure
10171017

10181018
// ----- Auxiliary creation methods ------------------
10191019

10201020
def Thicket(): Thicket = EmptyTree
1021-
def Thicket(x1: Tree, x2: Tree)(implicit src: SourceFile): Thicket = Thicket(x1 :: x2 :: Nil)
1022-
def Thicket(x1: Tree, x2: Tree, x3: Tree)(implicit src: SourceFile): Thicket = Thicket(x1 :: x2 :: x3 :: Nil)
1021+
def Thicket(x1: Tree, x2: Tree)(implicit src: SourceFile): Thicket = new Thicket(x1 :: x2 :: Nil)
1022+
def Thicket(x1: Tree, x2: Tree, x3: Tree)(implicit src: SourceFile): Thicket = new Thicket(x1 :: x2 :: x3 :: Nil)
1023+
def Thicket(xs: List[Tree])(implicit src: SourceFile) = new Thicket(xs)
1024+
10231025
def flatTree(xs: List[Tree])(implicit src: SourceFile): Tree = flatten(xs) match {
10241026
case x :: Nil => x
10251027
case ys => Thicket(ys)

compiler/src/dotty/tools/dotc/ast/tpd.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -787,10 +787,10 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
787787
}
788788

789789
def shallowFold[T](z: T)(op: (T, tpd.Tree) => T)(using Context): T =
790-
ShallowFolder(op).apply(z, tree)
790+
new ShallowFolder(op).apply(z, tree)
791791

792792
def deepFold[T](z: T)(op: (T, tpd.Tree) => T)(using Context): T =
793-
DeepFolder(op).apply(z, tree)
793+
new DeepFolder(op).apply(z, tree)
794794

795795
def find[T](pred: (tpd.Tree) => Boolean)(using Context): Option[tpd.Tree] =
796796
shallowFold[Option[tpd.Tree]](None)((accum, tree) => if (pred(tree)) Some(tree) else accum)

compiler/src/dotty/tools/dotc/core/SymDenotations.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1610,7 +1610,7 @@ object SymDenotations {
16101610

16111611
private def baseTypeCache(using Context): BaseTypeMap = {
16121612
if !currentHasSameBaseTypesAs(myBaseTypeCachePeriod) then
1613-
myBaseTypeCache = BaseTypeMap()
1613+
myBaseTypeCache = new BaseTypeMap()
16141614
myBaseTypeCachePeriod = ctx.period
16151615
myBaseTypeCache
16161616
}

compiler/src/dotty/tools/dotc/core/Symbols.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,8 @@ object Symbols {
492492
def currentClass(using Context): ClassSymbol = ctx.owner.enclosingClass.asClass
493493

494494
type MutableSymbolMap[T] = EqHashMap[Symbol, T]
495+
def MutableSymbolMap[T](): EqHashMap[Symbol, T] = EqHashMap[Symbol, T]()
496+
def MutableSymbolMap[T](initialCapacity: Int): EqHashMap[Symbol, T] = EqHashMap[Symbol, T](initialCapacity)
495497

496498
// ---- Factory methods for symbol creation ----------------------
497499
//

compiler/src/dotty/tools/dotc/typer/Namer.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class Namer { typer: Typer =>
5555
val ExpandedTree : Property.Key[untpd.Tree] = new Property.Key
5656
val ExportForwarders: Property.Key[List[tpd.MemberDef]] = new Property.Key
5757
val SymOfTree : Property.Key[Symbol] = new Property.Key
58-
val Deriver : Property.Key[typer.Deriver] = new Property.Key
58+
val AttachedDeriver : Property.Key[typer.Deriver] = new Property.Key
5959

6060
/** A partial map from unexpanded member and pattern defs and to their expansions.
6161
* Populated during enterSyms, emptied during typer.
@@ -1205,7 +1205,7 @@ class Namer { typer: Typer =>
12051205
}
12061206
val deriver = new Deriver(derivingClass, derivePos)(using localCtx)
12071207
deriver.enterDerived(impl.derived)
1208-
original.putAttachment(Deriver, deriver)
1208+
original.putAttachment(AttachedDeriver, deriver)
12091209
}
12101210

12111211
denot.info = tempInfo.finalized(parentTypes)

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2176,8 +2176,8 @@ class Typer extends Namer
21762176
if (ctx.mode.is(Mode.Interactive) && ctx.settings.YretainTrees.value)
21772177
cls.rootTreeOrProvider = cdef1
21782178

2179-
for (deriver <- cdef.removeAttachment(Deriver))
2180-
cdef1.putAttachment(Deriver, deriver)
2179+
for (deriver <- cdef.removeAttachment(AttachedDeriver))
2180+
cdef1.putAttachment(AttachedDeriver, deriver)
21812181

21822182
cdef1
21832183
}
@@ -2687,7 +2687,7 @@ class Typer extends Namer
26872687
val enumContext = enumContexts(stat.symbol.linkedClass)
26882688
if enumContext != null then
26892689
checkEnumCaseRefsLegal(stat, enumContext)
2690-
stat.removeAttachment(Deriver) match {
2690+
stat.removeAttachment(AttachedDeriver) match {
26912691
case Some(deriver) => deriver.finalize(stat)
26922692
case None => stat
26932693
}

scala3doc/src/dotty/dokka/site/templates.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ case class TemplateFile(
7070
case other => other
7171

7272
// Library requires mutable maps..
73-
val mutableProperties = JHashMap(ctx.properties.transform((_, v) => asJavaElement(v)).asJava)
73+
val mutableProperties = new JHashMap(ctx.properties.transform((_, v) => asJavaElement(v)).asJava)
7474
val rendered = Template.parse(this.rawCode).render(mutableProperties)
7575
// We want to render markdown only if next template is html
7676
val code = if (isHtml || layoutTemplate.exists(!_.isHtml)) rendered else

scala3doc/src/dotty/dokka/tasty/SymOps.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ class SymOps[Q <: Quotes](val q: Q):
131131
// We want package object to point to package
132132
val className = sym.className.filter(_ != "package$")
133133

134-
DRI(
134+
new DRI(
135135
className.fold(sym.packageName)(cn => s"${sym.packageName}.${cn}"),
136136
sym.anchor.getOrElse(""), // TODO do we need any of this fields?
137137
null,

scala3doc/src/dotty/renderers/html.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ object HTML:
4646
.replace("'", "&apos;")
4747

4848
case class Attr(name: String):
49-
def :=(value: String): AppliedAttr = AppliedAttr(s"""$name="$value"""")
49+
def :=(value: String): AppliedAttr = new AppliedAttr(s"""$name="$value"""")
5050

5151
opaque type AppliedTag = StringBuilder
5252

@@ -97,5 +97,5 @@ object HTML:
9797
val testId = Attr("data-test-id")
9898
val alt = Attr("alt")
9999

100-
def raw(content: String): AppliedTag = AppliedTag(content)
100+
def raw(content: String): AppliedTag = new AppliedTag(content)
101101
def raw(content: StringBuilder): AppliedTag = content

tests/new/test.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

2-
trait SemiGroup[T] {
3-
extension (x: T) def combine(y: T): T
4-
}
5-
trait Monoid[T] extends SemiGroup[T] {
6-
def unit: T
7-
}
8-
def sum[T: Monoid](xs: List[T]): T =
9-
xs.foldLeft(implicitly[Monoid[T]].unit)((x, y) => x.combine(y))
2+
object Test:
3+
case class Record(elems: (String, Any)*)
4+
5+
object Record:
6+
7+
inline def apply[R <: Record](elems: (String, Any)*) : R = Record(elems: _*)
8+
9+
def fromUntypedTuple(elems: (String, Any)*): Record = new Record(elems: _*)

tests/run-macros/refined-selectable-macro/Macro_2.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ object Macro2 {
2020
'{ new Record($elems:_*).asInstanceOf[R] }
2121
}
2222

23-
def fromUntypedTuple(elems: (String, Any)*): Record = Record(elems: _*)
23+
def fromUntypedTuple(elems: (String, Any)*): Record = new Record(elems: _*) // TODO: figure out why `new` is needed
2424
}
2525
}

0 commit comments

Comments
 (0)