Skip to content

Commit c99913f

Browse files
authored
Merge pull request #9620 from dotty-staging/cache-definitions
Avoid recomputations of definitions
2 parents 9940402 + dcb339e commit c99913f

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -487,10 +487,10 @@ class Definitions {
487487
@tu lazy val Predef_identity : Symbol = ScalaPredefModule.requiredMethod(nme.identity)
488488
@tu lazy val Predef_undefined: Symbol = ScalaPredefModule.requiredMethod(nme.???)
489489

490-
def SubTypeClass(using Context): ClassSymbol = requiredClass("scala.<:<")
490+
@tu lazy val SubTypeClass: ClassSymbol = requiredClass("scala.<:<")
491491
@tu lazy val SubType_refl: Symbol = SubTypeClass.companionModule.requiredMethod(nme.refl)
492492

493-
def DummyImplicitClass(using Context): ClassSymbol = requiredClass("scala.DummyImplicit")
493+
@tu lazy val DummyImplicitClass: ClassSymbol = requiredClass("scala.DummyImplicit")
494494

495495
@tu lazy val ScalaRuntimeModule: Symbol = requiredModule("scala.runtime.ScalaRunTime")
496496
def runtimeMethodRef(name: PreName): TermRef = ScalaRuntimeModule.requiredMethodRef(name)
@@ -528,8 +528,11 @@ class Definitions {
528528
methodNames.map(getWrapVarargsArrayModule.requiredMethod(_))
529529
})
530530

531-
@tu lazy val ListModule: Symbol = requiredModule("scala.collection.immutable.List")
532-
@tu lazy val NilModule: Symbol = requiredModule("scala.collection.immutable.Nil")
531+
@tu lazy val ListClass: Symbol = requiredClass("scala.collection.immutable.List")
532+
@tu lazy val ListModule: Symbol = requiredModule("scala.collection.immutable.List")
533+
@tu lazy val NilModule: Symbol = requiredModule("scala.collection.immutable.Nil")
534+
@tu lazy val ConsClass: Symbol = requiredClass("scala.collection.immutable.::")
535+
@tu lazy val SeqFactoryClass: Symbol = requiredClass("scala.collection.SeqFactory")
533536

534537
@tu lazy val SingletonClass: ClassSymbol =
535538
// needed as a synthetic class because Scala 2.x refers to it in classfiles

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,6 +1267,7 @@ object Denotations {
12671267
recur(path)
12681268
}
12691269

1270+
12701271
/** If we are looking for a non-existing term name in a package,
12711272
* assume it is a package for which we do not have a directory and
12721273
* enter it.

compiler/src/dotty/tools/dotc/transform/patmat/Space.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,10 +317,10 @@ class SpaceEngine(using Context) extends SpaceLogic {
317317
import tpd._
318318
import SpaceEngine._
319319

320-
private val scalaSeqFactoryClass = requiredClass("scala.collection.SeqFactory")
321-
private val scalaListType = requiredClassRef("scala.collection.immutable.List")
322-
private val scalaNilType = requiredModuleRef("scala.collection.immutable.Nil")
323-
private val scalaConsType = requiredClassRef("scala.collection.immutable.::")
320+
private val scalaSeqFactoryClass = defn.SeqFactoryClass
321+
private val scalaListType = defn.ListClass.typeRef
322+
private val scalaNilType = defn.NilModule.termRef
323+
private val scalaConsType = defn.ConsClass.typeRef
324324

325325
private val constantNullType = ConstantType(Constant(null))
326326
private val constantNullSpace = Typ(constantNullType)

0 commit comments

Comments
 (0)