@@ -28,6 +28,13 @@ object Definitions {
2828 * else without affecting the set of programs that can be compiled.
2929 */
3030 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
3138}
3239
3340/** A class defining symbols and types of standard definitions
@@ -444,19 +451,14 @@ class Definitions {
444451 @ threadUnsafe lazy val SeqType : TypeRef =
445452 if (isNewCollections) ctx.requiredClassRef(" scala.collection.immutable.Seq" )
446453 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))
460462
461463 @ threadUnsafe lazy val ArrayType : TypeRef = ctx.requiredClassRef(" scala.Array" )
462464 def ArrayClass (implicit ctx : Context ): ClassSymbol = ArrayType .symbol.asClass
0 commit comments