Skip to content

Commit 2bac1fe

Browse files
committed
Use perRun for Definition members #2
1 parent 0b49754 commit 2bac1fe

File tree

4 files changed

+25
-29
lines changed

4 files changed

+25
-29
lines changed

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

+16-20
Original file line numberDiff line numberDiff line change
@@ -223,21 +223,21 @@ class Definitions {
223223
else NoSymbol)
224224
cls
225225
}
226-
@threadUnsafe lazy val ScalaPackageObjectRef: TermRef = ctx.requiredModuleRef("scala.package")
226+
@threadUnsafe lazy val ScalaPackageObject: SymbolPerRun = perRun(ctx.requiredModuleRef("scala.package"))
227227
@threadUnsafe lazy val JavaPackageVal: TermSymbol = ctx.requiredPackage(nme.java)
228228
@threadUnsafe lazy val JavaLangPackageVal: TermSymbol = ctx.requiredPackage(jnme.JavaLang)
229+
229230
// fundamental modules
230-
@threadUnsafe lazy val SysPackage: TermSymbol = ctx.requiredModule("scala.sys.package")
231+
@threadUnsafe lazy val SysPackage : SymbolPerRun = perRun(ctx.requiredModuleRef("scala.sys.package"))
231232
@threadUnsafe lazy val Sys_error: SymbolPerRun = perRun(SysPackage.moduleClass.requiredMethodRef(nme.error))
232233

233234
@threadUnsafe lazy val ScalaXmlPackageClass: Symbol = ctx.getPackageClassIfDefined("scala.xml")
234235

235-
@threadUnsafe lazy val CompiletimePackageObjectRef: TermRef = ctx.requiredModuleRef("scala.compiletime.package")
236-
@threadUnsafe lazy val CompiletimePackageObject: Symbol = CompiletimePackageObjectRef.symbol.moduleClass
237-
@threadUnsafe lazy val Compiletime_error : SymbolPerRun = perRun(CompiletimePackageObjectRef.symbol.requiredMethodRef(nme.error))
238-
@threadUnsafe lazy val Compiletime_constValue : SymbolPerRun = perRun(CompiletimePackageObjectRef.symbol.requiredMethodRef("constValue"))
239-
@threadUnsafe lazy val Compiletime_constValueOpt: SymbolPerRun = perRun(CompiletimePackageObjectRef.symbol.requiredMethodRef("constValueOpt"))
240-
@threadUnsafe lazy val Compiletime_code : SymbolPerRun = perRun(CompiletimePackageObjectRef.symbol.requiredMethodRef("code"))
236+
@threadUnsafe lazy val CompiletimePackageObject: SymbolPerRun = perRun(ctx.requiredModuleRef("scala.compiletime.package"))
237+
@threadUnsafe lazy val Compiletime_error : SymbolPerRun = perRun(CompiletimePackageObject.requiredMethodRef(nme.error))
238+
@threadUnsafe lazy val Compiletime_constValue : SymbolPerRun = perRun(CompiletimePackageObject.requiredMethodRef("constValue"))
239+
@threadUnsafe lazy val Compiletime_constValueOpt: SymbolPerRun = perRun(CompiletimePackageObject.requiredMethodRef("constValueOpt"))
240+
@threadUnsafe lazy val Compiletime_code : SymbolPerRun = perRun(CompiletimePackageObject.requiredMethodRef("code"))
241241

242242
/** The `scalaShadowing` package is used to safely modify classes and
243243
* objects in scala so that they can be used from dotty. They will
@@ -246,8 +246,7 @@ class Definitions {
246246
* in `scalaShadowing` so they don't clash with the same-named `scala`
247247
* members at runtime.
248248
*/
249-
@threadUnsafe lazy val ScalaShadowingPackageVal: TermSymbol = ctx.requiredPackage(nme.scalaShadowing)
250-
def ScalaShadowingPackageClass(implicit ctx: Context): ClassSymbol = ScalaShadowingPackageVal.moduleClass.asClass
249+
@threadUnsafe lazy val ScalaShadowingPackage: TermSymbol = ctx.requiredPackage(nme.scalaShadowing)
251250

252251
/** Note: We cannot have same named methods defined in Object and Any (and AnyVal, for that matter)
253252
* because after erasure the Any and AnyVal references get remapped to the Object methods
@@ -364,8 +363,7 @@ class Definitions {
364363
def ImplicitScrutineeTypeRef: TypeRef = ImplicitScrutineeTypeSym.typeRef
365364

366365

367-
@threadUnsafe lazy val ScalaPredefModuleRef: TermRef = ctx.requiredModuleRef("scala.Predef")
368-
def ScalaPredefModule(implicit ctx: Context): Symbol = ScalaPredefModuleRef.symbol
366+
@threadUnsafe lazy val ScalaPredefModule: SymbolPerRun = perRun(ctx.requiredModuleRef("scala.Predef"))
369367
@threadUnsafe lazy val Predef_conforms : SymbolPerRun = perRun(ScalaPredefModule.requiredMethodRef(nme.conforms_))
370368
@threadUnsafe lazy val Predef_classOf : SymbolPerRun = perRun(ScalaPredefModule.requiredMethodRef(nme.classOf))
371369
@threadUnsafe lazy val Predef_undefined: SymbolPerRun = perRun(ScalaPredefModule.requiredMethodRef(nme.???))
@@ -382,13 +380,11 @@ class Definitions {
382380
else
383381
ScalaPredefModule.requiredClass("DummyImplicit")
384382

385-
@threadUnsafe lazy val ScalaRuntimeModuleRef: TermRef = ctx.requiredModuleRef("scala.runtime.ScalaRunTime")
386-
def ScalaRuntimeModule(implicit ctx: Context): Symbol = ScalaRuntimeModuleRef.symbol
383+
@threadUnsafe lazy val ScalaRuntimeModule: SymbolPerRun = perRun(ctx.requiredModuleRef("scala.runtime.ScalaRunTime"))
387384
def ScalaRuntimeClass(implicit ctx: Context): ClassSymbol = ScalaRuntimeModule.moduleClass.asClass
388385

389386
def runtimeMethodRef(name: PreName): TermRef = ScalaRuntimeModule.requiredMethodRef(name)
390-
def ScalaRuntime_dropR(implicit ctx: Context): TermRef = runtimeMethodRef(nme.drop)
391-
def ScalaRuntime_drop(implicit ctx: Context): Symbol = ScalaRuntime_dropR.symbol
387+
def ScalaRuntime_drop: SymbolPerRun = perRun(runtimeMethodRef(nme.drop))
392388

393389
@threadUnsafe lazy val BoxesRunTimeModuleRef: TermRef = ctx.requiredModuleRef("scala.runtime.BoxesRunTime")
394390
def BoxesRunTimeModule(implicit ctx: Context): Symbol = BoxesRunTimeModuleRef.symbol
@@ -1031,7 +1027,7 @@ class Definitions {
10311027
}
10321028

10331029
final def isCompiletime_S(sym: Symbol)(implicit ctx: Context): Boolean =
1034-
sym.name == tpnme.S && sym.owner == CompiletimePackageObject
1030+
sym.name == tpnme.S && sym.owner == CompiletimePackageObject.moduleClass
10351031

10361032
// ----- Symbol sets ---------------------------------------------------
10371033

@@ -1191,8 +1187,8 @@ class Definitions {
11911187
)
11921188

11931189
val PredefImportFns: List[() => TermRef] = List[() => TermRef](
1194-
() => ScalaPredefModuleRef,
1195-
() => DottyPredefModuleRef
1190+
() => ScalaPredefModule.termRef,
1191+
() => DottyPredefModule.termRef
11961192
)
11971193

11981194
@threadUnsafe lazy val RootImportFns: List[() => TermRef] =
@@ -1469,7 +1465,7 @@ class Definitions {
14691465
this.ctx = ctx
14701466
if (!isInitialized) {
14711467
// Enter all symbols from the scalaShadowing package in the scala package
1472-
for (m <- ScalaShadowingPackageClass.info.decls)
1468+
for (m <- ScalaShadowingPackage.info.decls)
14731469
ScalaPackageClass.enter(m)
14741470

14751471
// force initialization of every symbol that is synthesized or hijacked by the compiler

compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ class ClassfileParser(
176176
} else if (result == Some(NoEmbedded)) {
177177
for (sym <- List(moduleRoot.sourceModule, moduleRoot.symbol, classRoot.symbol)) {
178178
classRoot.owner.asClass.delete(sym)
179-
if (classRoot.owner == defn.ScalaShadowingPackageClass) {
179+
if (classRoot.owner == defn.ScalaShadowingPackage.moduleClass) {
180180
// Symbols in scalaShadowing are also added to scala
181181
defn.ScalaPackageClass.delete(sym)
182182
}

compiler/src/dotty/tools/dotc/printing/PlainPrinter.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@ class PlainPrinter(_ctx: Context) extends Printer {
125125
* They are either aliased in scala.Predef or in the scala package object.
126126
*/
127127
private[this] lazy val printWithoutPrefix: Set[Symbol] =
128-
(defn.ScalaPredefModuleRef.typeAliasMembers
129-
++ defn.ScalaPackageObjectRef.typeAliasMembers).map(_.info.classSymbol).toSet
128+
(defn.ScalaPredefModule.termRef.typeAliasMembers
129+
++ defn.ScalaPackageObject.termRef.typeAliasMembers).map(_.info.classSymbol).toSet
130130

131131
def toText(tp: Type): Text = controlled {
132132
homogenize(tp) match {

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

+6-6
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ trait QuotesAndSplices { self: Typer =>
4949
case quoted =>
5050
ctx.compilationUnit.needsStaging = true
5151
val tree1 =
52-
if (quoted.isType) typedTypeApply(untpd.TypeApply(untpd.ref(defn.InternalQuoted_typeQuoteR), quoted :: Nil), pt)(quoteContext)
52+
if (quoted.isType) typedTypeApply(untpd.TypeApply(untpd.ref(defn.InternalQuoted_typeQuote.termRef), quoted :: Nil), pt)(quoteContext)
5353
else if (ctx.mode.is(Mode.Pattern) && level == 0) typedQuotePattern(quoted, pt, qctx)
54-
else typedApply(untpd.Apply(untpd.ref(defn.InternalQuoted_exprQuoteR), quoted), pt)(quoteContext)
54+
else typedApply(untpd.Apply(untpd.ref(defn.InternalQuoted_exprQuote.termRef), quoted), pt)(quoteContext)
5555
tree1.withSpan(tree.span)
5656
}
5757
}
@@ -86,7 +86,7 @@ trait QuotesAndSplices { self: Typer =>
8686
else if (!c.outer.owner.is(Package)) markAsMacro(c.outer)
8787
markAsMacro(ctx)
8888
}
89-
typedApply(untpd.Apply(untpd.ref(defn.InternalQuoted_exprSpliceR), tree.expr), pt)(spliceContext).withSpan(tree.span)
89+
typedApply(untpd.Apply(untpd.ref(defn.InternalQuoted_exprSplice.termRef), tree.expr), pt)(spliceContext).withSpan(tree.span)
9090
}
9191
}
9292
}
@@ -178,7 +178,7 @@ trait QuotesAndSplices { self: Typer =>
178178
val exprTpt = AppliedTypeTree(TypeTree(defn.QuotedExprType), tpt1 :: Nil)
179179
transform(Splice(Typed(pat, exprTpt)))
180180
case Splice(pat) =>
181-
try ref(defn.InternalQuoted_patternHoleR).appliedToType(tree.tpe).withSpan(tree.span)
181+
try ref(defn.InternalQuoted_patternHole.termRef).appliedToType(tree.tpe).withSpan(tree.span)
182182
finally {
183183
val patType = pat.tpe.widen
184184
val patType1 = patType.underlyingIfRepeated(isJava = false)
@@ -347,9 +347,9 @@ trait QuotesAndSplices { self: Typer =>
347347
val splicePat = typed(untpd.Tuple(splices.map(x => untpd.TypedSplice(replaceBindingsInTree.transform(x)))).withSpan(quoted.span), patType)
348348

349349
UnApply(
350-
fun = ref(defn.InternalQuotedMatcher_unapplyR).appliedToTypeTrees(typeBindingsTuple :: TypeTree(patType) :: Nil),
350+
fun = ref(defn.InternalQuotedMatcher_unapply.termRef).appliedToTypeTrees(typeBindingsTuple :: TypeTree(patType) :: Nil),
351351
implicits =
352-
ref(defn.InternalQuoted_exprQuoteR).appliedToType(shape.tpe).appliedTo(shape) ::
352+
ref(defn.InternalQuoted_exprQuote.termRef).appliedToType(shape.tpe).appliedTo(shape) ::
353353
Literal(Constant(typeBindings.nonEmpty)) ::
354354
qctx :: Nil,
355355
patterns = splicePat :: Nil,

0 commit comments

Comments
 (0)