@@ -28,6 +28,13 @@ object Definitions {
28
28
* else without affecting the set of programs that can be compiled.
29
29
*/
30
30
val MaxImplementedFunctionArity : Int = MaxTupleArity
31
+
32
+ type SymbolPerRun = given Context => Symbol
33
+
34
+ def perRun (tp : NamedType ): given Context => Symbol =
35
+ tp.symbol
36
+
37
+ def perRunClass (tp : TypeRef ): given Context => ClassSymbol = tp.symbol.asClass
31
38
}
32
39
33
40
/** A class defining symbols and types of standard definitions
@@ -444,19 +451,14 @@ class Definitions {
444
451
@ threadUnsafe lazy val SeqType : TypeRef =
445
452
if (isNewCollections) ctx.requiredClassRef(" scala.collection.immutable.Seq" )
446
453
else ctx.requiredClassRef(" scala.collection.Seq" )
447
- def SeqClass (implicit ctx : Context ): ClassSymbol = SeqType .symbol.asClass
448
- @ threadUnsafe lazy val Seq_applyR : TermRef = SeqClass .requiredMethodRef(nme.apply)
449
- def Seq_apply (implicit ctx : Context ): Symbol = Seq_applyR .symbol
450
- @ threadUnsafe lazy val Seq_headR : TermRef = SeqClass .requiredMethodRef(nme.head)
451
- def Seq_head (implicit ctx : Context ): Symbol = Seq_headR .symbol
452
- @ threadUnsafe lazy val Seq_dropR : TermRef = SeqClass .requiredMethodRef(nme.drop)
453
- def Seq_drop (implicit ctx : Context ): Symbol = Seq_dropR .symbol
454
- @ threadUnsafe lazy val Seq_lengthCompareR : TermRef = SeqClass .requiredMethodRef(nme.lengthCompare, List (IntType ))
455
- def Seq_lengthCompare (implicit ctx : Context ): Symbol = Seq_lengthCompareR .symbol
456
- @ threadUnsafe lazy val Seq_lengthR : TermRef = SeqClass .requiredMethodRef(nme.length)
457
- def Seq_length (implicit ctx : Context ): Symbol = Seq_lengthR .symbol
458
- @ threadUnsafe lazy val Seq_toSeqR : TermRef = SeqClass .requiredMethodRef(nme.toSeq)
459
- def Seq_toSeq (implicit ctx : Context ): Symbol = Seq_toSeqR .symbol
454
+ def SeqClass : ClassSymbol = perRunClass(SeqType )
455
+
456
+ @ threadUnsafe lazy val Seq_apply : SymbolPerRun = perRun(SeqClass .requiredMethodRef(nme.apply))
457
+ @ threadUnsafe lazy val Seq_head : SymbolPerRun = perRun(SeqClass .requiredMethodRef(nme.head))
458
+ @ threadUnsafe lazy val Seq_drop : SymbolPerRun = perRun(SeqClass .requiredMethodRef(nme.drop))
459
+ @ threadUnsafe lazy val Seq_lengthCompare : SymbolPerRun = perRun(SeqClass .requiredMethodRef(nme.lengthCompare, List (IntType )))
460
+ @ threadUnsafe lazy val Seq_length : SymbolPerRun = perRun(SeqClass .requiredMethodRef(nme.length))
461
+ @ threadUnsafe lazy val Seq_toSeq : SymbolPerRun = perRun(SeqClass .requiredMethodRef(nme.toSeq))
460
462
461
463
@ threadUnsafe lazy val ArrayType : TypeRef = ctx.requiredClassRef(" scala.Array" )
462
464
def ArrayClass (implicit ctx : Context ): ClassSymbol = ArrayType .symbol.asClass
0 commit comments