abstract class SymbolLoaders extends AnyRef
- Alphabetic
- By Inheritance
- SymbolLoaders
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new SymbolLoaders()
Type Members
- class ClassfileLoader extends SymbolLoader with (symbolTable)#FlagAssigningCompleter
-
class
PackageLoader extends SymbolLoader with (symbolTable)#FlagAgnosticCompleter
Loads contents of a package
- class SourcefileLoader extends SymbolLoader with (symbolTable)#FlagAssigningCompleter
-
abstract
class
SymbolLoader extends (symbolTable)#SymLoader
A lazy type that completes itself by calling parameter doComplete.
A lazy type that completes itself by calling parameter doComplete. Any linked modules/classes or module classes are also initialized. Todo: consider factoring out behavior from TopClassCompleter/SymbolLoader into supertrait SymLoader
Abstract Value Members
-
abstract
def
lookupMemberAtTyperPhaseIfPossible(sym: (symbolTable)#Symbol, name: (symbolTable)#Name): (symbolTable)#Symbol
Required by ClassfileParser.
Required by ClassfileParser. Check documentation in that class for details.
- abstract val platform: Platform { val symbolTable: scala.tools.nsc.symtab.SymbolLoaders.<refinement>.type }
- abstract val symbolTable: SymbolTable { def settings: scala.tools.nsc.Settings }
Concrete Value Members
-
def
binaryOnly(owner: (symbolTable)#Symbol, name: String): Boolean
The package objects of scala and scala.reflect should always be loaded in binary if classfiles are available, even if sourcefiles are newer.
The package objects of scala and scala.reflect should always be loaded in binary if classfiles are available, even if sourcefiles are newer. Late-compiling these objects from source leads to compilation order issues. Note: We do a name-base comparison here because the method is called before we even have ReflectPackage defined.
- def enterClass(owner: (symbolTable)#Symbol, clazz: (symbolTable)#ClassSymbol, completer: SymbolLoader): (symbolTable)#Symbol
-
def
enterClass(owner: (symbolTable)#Symbol, name: String, completer: SymbolLoader): (symbolTable)#Symbol
Enter class with given
name
into scope ofroot
and give themcompleter
as type. -
def
enterClassAndModule(root: (symbolTable)#Symbol, name: String, getCompleter: ((symbolTable)#ClassSymbol, (symbolTable)#ModuleSymbol) ⇒ SymbolLoader): Unit
Enter class and module with given
name
into scope ofroot
and give themcompleter
as type. - def enterModule(owner: (symbolTable)#Symbol, module: (symbolTable)#ModuleSymbol, completer: SymbolLoader): (symbolTable)#Symbol
-
def
enterModule(owner: (symbolTable)#Symbol, name: String, completer: SymbolLoader): (symbolTable)#Symbol
Enter module with given
name
into scope ofroot
and give themcompleter
as type. -
def
enterPackage(root: (symbolTable)#Symbol, name: String, completer: SymbolLoader): (symbolTable)#Symbol
Enter package with given
name
into scope ofroot
and give themcompleter
as type. -
def
enterToplevelsFromSource(root: (symbolTable)#Symbol, name: String, src: AbstractFile): Unit
In batch mode: Enter class and module with given
name
into scope ofroot
and give them a source completer for givensrc
as type.In batch mode: Enter class and module with given
name
into scope ofroot
and give them a source completer for givensrc
as type. In IDE mode: Find all toplevel definitions insrc
and enter then into scope ofroot
with source completer for givensrc
as type. (overridden in interactive.Global). -
def
initializeFromClassPath(owner: (symbolTable)#Symbol, classRep: ClassRepresentation): Unit
Initialize toplevel class and module symbols in
owner
from class path representationclassRep
- def newClass(owner: (symbolTable)#Symbol, name: String): (symbolTable)#ClassSymbol
- def newModule(owner: (symbolTable)#Symbol, name: String): (symbolTable)#ModuleSymbol
-
var
parentsLevel: Int
used from classfile parser to avoid cycles
- var pendingLoadActions: List[() ⇒ Unit]
- object moduleClassLoader extends SymbolLoader with (symbolTable)#FlagAssigningCompleter
The Scala compiler and reflection APIs.