xsbt

API

final class API extends Compat with GlobalHelpers with ClassName

Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. API
  2. ClassName
  3. GlobalHelpers
  4. Compat
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new API(global: CallbackGlobal)

Type Members

  1. class ApiPhase extends CallbackGlobal.GlobalPhase

  2. implicit class MacroExpansionAttachmentCompat extends AnyRef

    Definition Classes
    Compat
  3. final class SymbolCompat extends AnyRef

    Attributes
    protected
    Definition Classes
    Compat

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. val DummyValue: Int

    Definition Classes
    Compat
  7. object Feedback

    Define common error messages for error reporting and assertions.

  8. val LocalChild: scala.reflect.internal.StdNames.tpnme.NameType

    Definition Classes
    Compat
  9. object MacroExpansionOf

    Definition Classes
    GlobalHelpers
  10. object MirrorHelper

    Definition Classes
    Compat
  11. val Nullary: CallbackGlobal.NullaryMethodType.type

    Definition Classes
    Compat
  12. object NullaryMethodTpe

    Definition Classes
    Compat
  13. val ScalaObjectClass: CallbackGlobal.ClassSymbol

    Definition Classes
    Compat
  14. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  15. def className(s: CallbackGlobal.Symbol): CallbackGlobal.Name

    Create a (source) name for a class symbol s.

    Create a (source) name for a class symbol s.

    Attributes
    protected
    Definition Classes
    ClassName
  16. def classNameAsSeenIn(in: CallbackGlobal.Symbol, s: CallbackGlobal.Symbol): String

    Create a (source) name for the class symbol s with a prefix determined by the class symbol in.

    Create a (source) name for the class symbol s with a prefix determined by the class symbol in.

    If s represents a package object pkg3, then the returned name will be pkg1.pkg2.pkg3.package. If s represents a class Foo nested in package object pkg3 then the returned name is pkg1.pkg2.pk3.Foo.

    Note that some objects with special access rights are encoded in names (like qualified privates private[qualifier]). In order to get the right original names, we need to use unexpandedName.

    Attributes
    protected
    Definition Classes
    ClassName
  17. def classNameAsString(s: CallbackGlobal.Symbol): String

    Create a String (source) name for a class symbol s.

    Create a String (source) name for a class symbol s.

    Attributes
    protected
    Definition Classes
    ClassName
  18. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. def constructorName(cls: CallbackGlobal.Symbol): CallbackGlobal.Name

    Given a class symbol cls, construct a name representing this constructor.

    Given a class symbol cls, construct a name representing this constructor. For a class:

    a.b.Foo

    this is:

    a;b;Foo;init;

    The prefix is important to avoid name hashing all constructors together (see #97), the weird format is necessary to avoid scalac or zinc trying to interpret this name (in particular we should not use '.' and we should not use '<init>'), we use ';' because it is one of the few characters that cannot appear in a valid JVM name.

    Attributes
    protected
    Definition Classes
    ClassName
  20. def constructorNameAsString(cls: CallbackGlobal.Symbol): String

    Attributes
    protected
    Definition Classes
    ClassName
  21. final def devWarning(msg: ⇒ String): Unit

    Definition Classes
    Compat
    Annotations
    @inline()
  22. def enclOrModuleClass(s: CallbackGlobal.Symbol): CallbackGlobal.Symbol

    Return the enclosing class or the module class if it's a module.

    Return the enclosing class or the module class if it's a module.

    Definition Classes
    GlobalHelpers
  23. final def enteringPhase[T](ph: Phase)(op: ⇒ T): T

    Definition Classes
    Compat
    Annotations
    @inline()
  24. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  25. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  26. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  27. def flatclassName(s: CallbackGlobal.Symbol, sep: Char, dollarRequired: Boolean): String

    Attributes
    protected
    Definition Classes
    ClassName
  28. def flatname(s: CallbackGlobal.Symbol, separator: Char): String

    Creates a flat (binary) name for a class symbol s.

    Creates a flat (binary) name for a class symbol s.

    Attributes
    protected
    Definition Classes
    ClassName
  29. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  30. val global: CallbackGlobal

    Definition Classes
    APIClassNameGlobalHelpersCompat
  31. def hasMacro(s: CallbackGlobal.Symbol): Boolean

    Definition Classes
    Compat
  32. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  33. def ignoredSymbol(symbol: CallbackGlobal.Symbol): Boolean

    Return true if symbol shall be ignored, false otherwise.

    Return true if symbol shall be ignored, false otherwise.

    Definition Classes
    GlobalHelpers
    Annotations
    @inline()
  34. def ignoredType(tpe: CallbackGlobal.Type): Boolean

    Return true if type shall be ignored, false otherwise.

    Return true if type shall be ignored, false otherwise.

    Definition Classes
    GlobalHelpers
    Annotations
    @inline()
  35. def isEmptyName(name: CallbackGlobal.Name): Boolean

    Return true if name is empty, false otherwise.

    Return true if name is empty, false otherwise.

    Definition Classes
    GlobalHelpers
  36. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  37. final def isSyntheticCoreClass(sym: CallbackGlobal.Symbol): Boolean

    Definition Classes
    GlobalHelpers
  38. def isTopLevelModule(sym: CallbackGlobal.Symbol): Boolean

    Attributes
    protected
    Definition Classes
    ClassName
  39. def mangledName(s: CallbackGlobal.Symbol): CallbackGlobal.Name

    Mangle a JVM symbol name in a format better suited for internal uses by sbt.

    Mangle a JVM symbol name in a format better suited for internal uses by sbt.

    Attributes
    protected
    Definition Classes
    ClassName
  40. def moduleSuffix(s: CallbackGlobal.Symbol): String

    Definition Classes
    Compat
  41. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  42. def newPhase(prev: Phase): ApiPhase

  43. final def notify(): Unit

    Definition Classes
    AnyRef
  44. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  45. def processMacroExpansion(in: CallbackGlobal.Tree)(func: (CallbackGlobal.Tree) ⇒ Unit): Boolean

    Returns true if given tree contains macro attchment.

    Returns true if given tree contains macro attchment. In such case calls func on tree from attachment.

    Definition Classes
    GlobalHelpers
  46. def registerGeneratedClasses(classSymbols: Iterator[CallbackGlobal.Symbol]): Unit

    Registers only non-local generated classes in the callback by extracting information about its names and using the names to generate class file paths.

    Registers only non-local generated classes in the callback by extracting information about its names and using the names to generate class file paths.

    Mimics the previous logic that was present in Analyzer, despite the fact that now we construct the names that the compiler will give to every non-local class independently of genbcode.

    Why do we do this? The motivation is that we want to run the incremental algorithm independently of the compiler pipeline. This independence enables us to:

    1. Offload the incremental compiler logic out of the primary pipeline and run the incremental phases concurrently. 2. Know before the compilation is completed whether another compilation will or will not be required. This is important to make incremental compilation work with pipelining and enables further optimizations; for example, we can start subsequent incremental compilations before (!) the initial compilation is done. This can buy us ~30-40% faster incremental compiler iterations.

    This method only takes care of non-local classes because local classes have no relevance in the correctness of the algorithm and can be registered after genbcode. Local classes are only used to construct the relations of products and to produce the list of generated files + stamps, but names referring to local classes **never** show up in the name hashes of classes' APIs, hence never considered for name hashing.

    As local class files are owned by other classes that change whenever they change, we could most likely live without adding their class files to the products relation and registering their stamps. However, to be on the safe side, we will continue to register the local products in Analyzer.

  47. implicit def symbolCompat(sym: CallbackGlobal.Symbol): SymbolCompat

    Attributes
    protected
    Definition Classes
    Compat
  48. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  49. def toString(): String

    Definition Classes
    AnyRef → Any
  50. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  51. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  52. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from ClassName

Inherited from GlobalHelpers

Inherited from Compat

Inherited from AnyRef

Inherited from Any

Ungrouped