abstract class BrowsingLoaders extends GlobalSymbolLoaders
A subclass of SymbolLoaders that implements browsing behavior. This class should be used whenever file dependencies and recompile sets are managed automatically.
- Source
- BrowsingLoaders.scala
- Alphabetic
- By Inheritance
- BrowsingLoaders
- GlobalSymbolLoaders
- SymbolLoaders
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new BrowsingLoaders()
Type Members
- class ClassfileLoader extends SymbolLoader with (symbolTable)#FlagAssigningCompleter
- Definition Classes
- SymbolLoaders
- class PackageLoader extends SymbolLoader with (symbolTable)#FlagAgnosticCompleter
Loads contents of a package
Loads contents of a package
- Definition Classes
- SymbolLoaders
- class SourcefileLoader extends SymbolLoader with (symbolTable)#FlagAssigningCompleter
- Definition Classes
- SymbolLoaders
- 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
- Definition Classes
- SymbolLoaders
Abstract Value Members
- abstract val global: Global
- Definition Classes
- BrowsingLoaders → GlobalSymbolLoaders
- abstract val platform: Global.platform
- Definition Classes
- GlobalSymbolLoaders → SymbolLoaders
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from BrowsingLoaders toany2stringadd[BrowsingLoaders] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (BrowsingLoaders, B)
- Implicit
- This member is added by an implicit conversion from BrowsingLoaders toArrowAssoc[BrowsingLoaders] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def binaryOnly(owner: Global.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.
- Definition Classes
- SymbolLoaders
- def browseTopLevel(root: Global.Symbol, src: AbstractFile): Unit
Browse the top-level of given abstract file
src
and enter any encountered top-level classes and modules inroot
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def compileLate(srcfile: AbstractFile): Unit
Should forward to
Run.compileLate
.Should forward to
Run.compileLate
. The more principled fix would be to determine why this functionality is needed and extract it into a separate interface.- Attributes
- protected
- Definition Classes
- GlobalSymbolLoaders → SymbolLoaders
- def ensuring(cond: (BrowsingLoaders) => Boolean, msg: => Any): BrowsingLoaders
- Implicit
- This member is added by an implicit conversion from BrowsingLoaders toEnsuring[BrowsingLoaders] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (BrowsingLoaders) => Boolean): BrowsingLoaders
- Implicit
- This member is added by an implicit conversion from BrowsingLoaders toEnsuring[BrowsingLoaders] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): BrowsingLoaders
- Implicit
- This member is added by an implicit conversion from BrowsingLoaders toEnsuring[BrowsingLoaders] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): BrowsingLoaders
- Implicit
- This member is added by an implicit conversion from BrowsingLoaders toEnsuring[BrowsingLoaders] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def enterClass(owner: Global.Symbol, clazz: Global.ClassSymbol, completer: SymbolLoader): Global.Symbol
- Definition Classes
- SymbolLoaders
- def enterClass(owner: Global.Symbol, name: String, completer: SymbolLoader): Global.Symbol
Enter class with given
name
into scope ofroot
and give themcompleter
as type.Enter class with given
name
into scope ofroot
and give themcompleter
as type.- Definition Classes
- SymbolLoaders
- def enterClassAndModule(root: Global.Symbol, name: String, getCompleter: (Global.ClassSymbol, Global.ModuleSymbol) => SymbolLoader): Unit
Enter class and module with given
name
into scope ofroot
and give themcompleter
as type.Enter class and module with given
name
into scope ofroot
and give themcompleter
as type.- Definition Classes
- SymbolLoaders
- def enterIfNew(owner: Global.Symbol, member: Global.Symbol, completer: SymbolLoader): Global.Symbol
In browse mode, it can happen that an encountered symbol is already present.
In browse mode, it can happen that an encountered symbol is already present. For instance, if the source file has a name different from the classes and objects it contains, the symbol loader will always reparse the source file. The symbols it encounters might already be loaded as class files. In this case we return the one which has a sourcefile (and the other has not), and issue an error if both have sourcefiles.
- Attributes
- protected
- Definition Classes
- BrowsingLoaders → SymbolLoaders
- def enterModule(owner: Global.Symbol, module: Global.ModuleSymbol, completer: SymbolLoader): Global.Symbol
- Definition Classes
- SymbolLoaders
- def enterModule(owner: Global.Symbol, name: String, completer: SymbolLoader): Global.Symbol
Enter module with given
name
into scope ofroot
and give themcompleter
as type.Enter module with given
name
into scope ofroot
and give themcompleter
as type.- Definition Classes
- SymbolLoaders
- def enterPackage(root: Global.Symbol, name: String, completer: SymbolLoader): Global.Symbol
Enter package with given
name
into scope ofroot
and give themcompleter
as type.Enter package with given
name
into scope ofroot
and give themcompleter
as type.- Definition Classes
- SymbolLoaders
- def enterToplevelsFromSource(root: Global.Symbol, name: String, src: AbstractFile): Unit
Enter top-level symbols from a source file
Enter top-level symbols from a source file
- Definition Classes
- BrowsingLoaders → SymbolLoaders
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from BrowsingLoaders toStringFormat[BrowsingLoaders] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def initializeFromClassPath(owner: Global.Symbol, classRep: ClassRepresentation): Unit
Initialize toplevel class and module symbols in
owner
from class path representationclassRep
Initialize toplevel class and module symbols in
owner
from class path representationclassRep
- Definition Classes
- SymbolLoaders
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lookupMemberAtTyperPhaseIfPossible(sym: Global.Symbol, name: Global.Name): Global.Symbol
Required by ClassfileParser.
Required by ClassfileParser. Check documentation in that class for details.
- Definition Classes
- GlobalSymbolLoaders → SymbolLoaders
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newClass(owner: Global.Symbol, name: String): Global.ClassSymbol
- Definition Classes
- SymbolLoaders
- def newModule(owner: Global.Symbol, name: String): Global.ModuleSymbol
- Definition Classes
- SymbolLoaders
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- var parentsLevel: Int
used from classfile parser to avoid cycles
used from classfile parser to avoid cycles
- Definition Classes
- SymbolLoaders
- var pendingLoadActions: List[() => Unit]
- Definition Classes
- SymbolLoaders
- def signalError(root: Global.Symbol, ex: Throwable): Unit
- Attributes
- protected
- Definition Classes
- SymbolLoaders
- val symbolTable: global.type
- Definition Classes
- GlobalSymbolLoaders → SymbolLoaders
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- object moduleClassLoader extends SymbolLoader with (symbolTable)#FlagAssigningCompleter
- Definition Classes
- SymbolLoaders
Deprecated Value Members
- def →[B](y: B): (BrowsingLoaders, B)
- Implicit
- This member is added by an implicit conversion from BrowsingLoaders toArrowAssoc[BrowsingLoaders] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.
The Scala compiler and reflection APIs.