aboutsummaryrefslogblamecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
blob: 7e83e48bb21895f03458ec4bef74e86a72863e5a (plain) (tree)
1
2
3
4
5
6
7
8
9

                             
                                     
 
                                          


                                    
                                       










                                                         
                                        
                                                  
 





                                                                                                     





                                                                                             
 
package dotty.tools.dotc.core

import Types._, Contexts._, Symbols._

class Definitions(implicit ctx: Context) {
  private var _isInitialized = false
  def isInitialized = _isInitialized

  lazy val RootClass: ClassSymbol = ???
  lazy val AnyClass: ClassSymbol = ???
  lazy val AnyType = AnyClass.typeConstructor
  lazy val AnyValClass: ClassSymbol = ???
  lazy val NothingClass: ClassSymbol = ???
  lazy val NothingType = NothingClass.typeConstructor
  lazy val NullClass: ClassSymbol = ???
  lazy val NullType = NullClass.typeConstructor
  lazy val ObjectClass: ClassSymbol = ???
  lazy val ObjectType = ObjectClass.typeConstructor
  lazy val SingletonClass: ClassSymbol = ???
  lazy val SingletonType = SingletonClass.typeConstructor
  lazy val ArrayClass: ClassSymbol = ???
  lazy val uncheckedStableClass: ClassSymbol = ???

  /** Modules whose members are in the default namespace */
  lazy val UnqualifiedModules: Set[Symbol] = ??? // List(PredefModule, ScalaPackage, JavaLangPackage)

  /** `UnqualifiedModules` and their module classes */
  lazy val UnqualifiedOwners = UnqualifiedModules ++ UnqualifiedModules.map(_.moduleClass)

  def init() =
    if (!isInitialized) {
      // force initialization of every symbol that is synthesized or hijacked by the compiler
      val forced = ???
      _isInitialized = true
    }
}