Skip to content

Commit 7728d68

Browse files
committed
Use perRun for Definition members #2
1 parent b2adad1 commit 7728d68

File tree

3 files changed

+19
-23
lines changed

3 files changed

+19
-23
lines changed

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

Lines changed: 16 additions & 20 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 2 additions & 2 deletions
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 {

0 commit comments

Comments
 (0)