File tree Expand file tree Collapse file tree 12 files changed +29
-25
lines changed
run-macros/refined-selectable-macro Expand file tree Collapse file tree 12 files changed +29
-25
lines changed Original file line number Diff line number Diff line change @@ -81,7 +81,7 @@ trait BytecodeWriters {
81
81
trait AsmpBytecodeWriter extends BytecodeWriter {
82
82
import scala .tools .asm
83
83
84
- private val baseDir = Directory (None .get).createDirectory() // FIXME missing directoy
84
+ private val baseDir = new Directory (None .get).createDirectory() // FIXME missing directoy
85
85
86
86
private def emitAsmp (jclassBytes : Array [Byte ], asmpFile : dotty.tools.io.File ): Unit = {
87
87
val pw = asmpFile.printWriter()
Original file line number Diff line number Diff line change @@ -1013,13 +1013,15 @@ object Trees {
1013
1013
1014
1014
@ sharable val EmptyTree : Thicket = genericEmptyTree
1015
1015
@ 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
1017
1017
1018
1018
// ----- Auxiliary creation methods ------------------
1019
1019
1020
1020
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
+
1023
1025
def flatTree (xs : List [Tree ])(implicit src : SourceFile ): Tree = flatten(xs) match {
1024
1026
case x :: Nil => x
1025
1027
case ys => Thicket (ys)
Original file line number Diff line number Diff line change @@ -787,10 +787,10 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
787
787
}
788
788
789
789
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)
791
791
792
792
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)
794
794
795
795
def find [T ](pred : (tpd.Tree ) => Boolean )(using Context ): Option [tpd.Tree ] =
796
796
shallowFold[Option [tpd.Tree ]](None )((accum, tree) => if (pred(tree)) Some (tree) else accum)
Original file line number Diff line number Diff line change @@ -1610,7 +1610,7 @@ object SymDenotations {
1610
1610
1611
1611
private def baseTypeCache (using Context ): BaseTypeMap = {
1612
1612
if ! currentHasSameBaseTypesAs(myBaseTypeCachePeriod) then
1613
- myBaseTypeCache = BaseTypeMap ()
1613
+ myBaseTypeCache = new BaseTypeMap ()
1614
1614
myBaseTypeCachePeriod = ctx.period
1615
1615
myBaseTypeCache
1616
1616
}
Original file line number Diff line number Diff line change @@ -492,6 +492,8 @@ object Symbols {
492
492
def currentClass (using Context ): ClassSymbol = ctx.owner.enclosingClass.asClass
493
493
494
494
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)
495
497
496
498
// ---- Factory methods for symbol creation ----------------------
497
499
//
Original file line number Diff line number Diff line change @@ -55,7 +55,7 @@ class Namer { typer: Typer =>
55
55
val ExpandedTree : Property .Key [untpd.Tree ] = new Property .Key
56
56
val ExportForwarders : Property .Key [List [tpd.MemberDef ]] = new Property .Key
57
57
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
59
59
60
60
/** A partial map from unexpanded member and pattern defs and to their expansions.
61
61
* Populated during enterSyms, emptied during typer.
@@ -1205,7 +1205,7 @@ class Namer { typer: Typer =>
1205
1205
}
1206
1206
val deriver = new Deriver (derivingClass, derivePos)(using localCtx)
1207
1207
deriver.enterDerived(impl.derived)
1208
- original.putAttachment(Deriver , deriver)
1208
+ original.putAttachment(AttachedDeriver , deriver)
1209
1209
}
1210
1210
1211
1211
denot.info = tempInfo.finalized(parentTypes)
Original file line number Diff line number Diff line change @@ -2176,8 +2176,8 @@ class Typer extends Namer
2176
2176
if (ctx.mode.is(Mode .Interactive ) && ctx.settings.YretainTrees .value)
2177
2177
cls.rootTreeOrProvider = cdef1
2178
2178
2179
- for (deriver <- cdef.removeAttachment(Deriver ))
2180
- cdef1.putAttachment(Deriver , deriver)
2179
+ for (deriver <- cdef.removeAttachment(AttachedDeriver ))
2180
+ cdef1.putAttachment(AttachedDeriver , deriver)
2181
2181
2182
2182
cdef1
2183
2183
}
@@ -2687,7 +2687,7 @@ class Typer extends Namer
2687
2687
val enumContext = enumContexts(stat.symbol.linkedClass)
2688
2688
if enumContext != null then
2689
2689
checkEnumCaseRefsLegal(stat, enumContext)
2690
- stat.removeAttachment(Deriver ) match {
2690
+ stat.removeAttachment(AttachedDeriver ) match {
2691
2691
case Some (deriver) => deriver.finalize(stat)
2692
2692
case None => stat
2693
2693
}
Original file line number Diff line number Diff line change @@ -70,7 +70,7 @@ case class TemplateFile(
70
70
case other => other
71
71
72
72
// 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)
74
74
val rendered = Template .parse(this .rawCode).render(mutableProperties)
75
75
// We want to render markdown only if next template is html
76
76
val code = if (isHtml || layoutTemplate.exists(! _.isHtml)) rendered else
Original file line number Diff line number Diff line change @@ -131,7 +131,7 @@ class SymOps[Q <: Quotes](val q: Q):
131
131
// We want package object to point to package
132
132
val className = sym.className.filter(_ != " package$" )
133
133
134
- DRI (
134
+ new DRI (
135
135
className.fold(sym.packageName)(cn => s " ${sym.packageName}. ${cn}" ),
136
136
sym.anchor.getOrElse(" " ), // TODO do we need any of this fields?
137
137
null ,
Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ object HTML:
46
46
.replace(" '" , " '" )
47
47
48
48
case class Attr (name : String ):
49
- def := (value : String ): AppliedAttr = AppliedAttr (s """ $name=" $value" """ )
49
+ def := (value : String ): AppliedAttr = new AppliedAttr (s """ $name=" $value" """ )
50
50
51
51
opaque type AppliedTag = StringBuilder
52
52
@@ -97,5 +97,5 @@ object HTML:
97
97
val testId = Attr (" data-test-id" )
98
98
val alt = Attr (" alt" )
99
99
100
- def raw (content : String ): AppliedTag = AppliedTag (content)
100
+ def raw (content : String ): AppliedTag = new AppliedTag (content)
101
101
def raw (content : StringBuilder ): AppliedTag = content
Original file line number Diff line number Diff line change 1
1
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 : _* )
Original file line number Diff line number Diff line change @@ -20,6 +20,6 @@ object Macro2 {
20
20
' { new Record ($elems:_* ).asInstanceOf [R ] }
21
21
}
22
22
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
24
24
}
25
25
}
You can’t perform that action at this time.
0 commit comments