Packages

object CodeGenImpl extends BCodeSyncAndTry

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CodeGenImpl
  2. BCodeSyncAndTry
  3. BCodeBodyBuilder
  4. BCodeSkelBuilder
  5. BCodeHelpers
  6. BCodeIdiomatic
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract class PlainBodyBuilder extends PlainSkelBuilder
    Definition Classes
    BCodeBodyBuilder
  2. trait BCAnnotGen extends BCInnerClassGen
    Definition Classes
    BCodeHelpers
  3. trait BCClassGen extends BCInnerClassGen
    Definition Classes
    BCodeHelpers
  4. trait BCForwardersGen extends BCAnnotGen with BCJGenSigGen
    Definition Classes
    BCodeHelpers
  5. trait BCInnerClassGen extends AnyRef
    Definition Classes
    BCodeHelpers
  6. trait BCJGenSigGen extends AnyRef
    Definition Classes
    BCodeHelpers
  7. trait BCPickles extends AnyRef
    Definition Classes
    BCodeHelpers
  8. final case class EnclosingMethodEntry(owner: String, name: String, methodDescriptor: String) extends Product with Serializable
    Definition Classes
    BCodeHelpers
  9. trait JAndroidBuilder extends AnyRef
    Definition Classes
    BCodeHelpers
  10. class JBeanInfoBuilder extends BCInnerClassGen
    Definition Classes
    BCodeHelpers
  11. abstract class JCommonBuilder extends BCInnerClassGen with BCAnnotGen with BCForwardersGen with BCPickles
    Definition Classes
    BCodeHelpers
  12. class JMirrorBuilder extends JCommonBuilder
    Definition Classes
    BCodeHelpers
  13. implicit class InsnIterInsnList extends AnyRef
    Definition Classes
    BCodeIdiomatic
  14. implicit class InsnIterMethodNode extends AnyRef
    Definition Classes
    BCodeIdiomatic
  15. abstract class JCodeMethodN extends AnyRef
    Definition Classes
    BCodeIdiomatic
  16. class LabelDefsFinder extends Global.Traverser
    Definition Classes
    BCodeIdiomatic
  17. abstract class PlainSkelBuilder extends BCClassGen with BCAnnotGen with BCInnerClassGen with JAndroidBuilder with BCForwardersGen with BCPickles with BCJGenSigGen
    Definition Classes
    BCodeSkelBuilder
  18. class SyncAndTryBuilder extends PlainBodyBuilder
    Definition Classes
    BCodeSyncAndTry

Value Members

  1. object delambdafyInline

    Cache the value of delambdafy == "inline" for each run.

    Cache the value of delambdafy == "inline" for each run. We need to query this value many times, so caching makes sense.

    Definition Classes
    BCodeHelpers
  2. object isJavaEntryPoint
    Definition Classes
    BCodeHelpers
  3. object JCodeMethodN
    Definition Classes
    BCodeIdiomatic
  4. val EMPTY_BTYPE_ARRAY: Array[BTypesFromSymbols.BType]
    Definition Classes
    BCodeIdiomatic
  5. val EMPTY_INT_ARRAY: Array[Int]
    Definition Classes
    BCodeIdiomatic
  6. val EMPTY_LABEL_ARRAY: Array[Label]
    Definition Classes
    BCodeIdiomatic
  7. val EMPTY_STRING_ARRAY: Array[String]
    Definition Classes
    BCodeIdiomatic
  8. lazy val JavaStringBuilderClassName: InternalName
    Definition Classes
    BCodeIdiomatic
  9. val bTypes: CodeGen.bTypes.type
    Definition Classes
    CodeGenImplBCodeIdiomatic
  10. def classOriginallyNestedInClass(nestedClass: G.Symbol, enclosingClass: G.Symbol): Boolean
    Definition Classes
    BCodeHelpers
  11. final def coercionFrom(code: Int): BTypesFromSymbols.BType
    Definition Classes
    BCodeIdiomatic
  12. final def coercionTo(code: Int): BTypesFromSymbols.BType
    Definition Classes
    BCodeIdiomatic
  13. def completeSilentlyAndCheckErroneous(sym: G.Symbol): Boolean

    This is a hack to work around scala/bug#9111.

    This is a hack to work around scala/bug#9111. The completer of methodSym may report type errors. We cannot change the typer context of the completer at this point and make it silent: the context captured when creating the completer in the namer. However, we can temporarily replace global.reporter (it's a var) to store errors.

    Definition Classes
    BCodeHelpers
  14. def considerAsTopLevelImplementationArtifact(classSym: G.Symbol): Boolean

    True for classes generated by the Scala compiler that are considered top-level in terms of the InnerClass / EnclosingMethod classfile attributes.

    True for classes generated by the Scala compiler that are considered top-level in terms of the InnerClass / EnclosingMethod classfile attributes. See comment in BTypes.

    Definition Classes
    BCodeHelpers
  15. def enclosingMethodAttribute(classSym: G.Symbol, classDesc: (G.Symbol) ⇒ String, methodDesc: (G.Symbol) ⇒ String): Option[EnclosingMethodEntry]

    Data for emitting an EnclosingMethod attribute.

    Data for emitting an EnclosingMethod attribute. None if classSym is a member class (not an anonymous or local class). See doc in BTypes.

    The class is parameterized by two functions to obtain a bytecode class descriptor for a class symbol, and to obtain a method signature descriptor fro a method symbol. These function depend on the implementation of GenASM / GenBCode, so they need to be passed in.

    Definition Classes
    BCodeHelpers
  16. def fieldSymbols(cls: G.Symbol): List[G.Symbol]
    Definition Classes
    BCodeHelpers
  17. val global: CodeGen.global.type
    Definition Classes
    CodeGenImplBCodeIdiomatic
  18. def isAnonymousOrLocalClass(classSym: G.Symbol): Boolean

    True if classSym is an anonymous class or a local class.

    True if classSym is an anonymous class or a local class. I.e., false if classSym is a member class. This method is used to decide if we should emit an EnclosingMethod attribute. It is also used to decide whether the "owner" field in the InnerClass attribute should be null.

    Definition Classes
    BCodeHelpers
  19. def isOriginallyStaticOwner(sym: G.Symbol): Boolean

    This is basically a re-implementation of sym.isStaticOwner, but using the originalOwner chain.

    This is basically a re-implementation of sym.isStaticOwner, but using the originalOwner chain.

    The problem is that we are interested in a source-level property. Various phases changed the symbol's properties in the meantime, mostly lambdalift modified (destructively) the owner. Therefore, sym.isStatic is not what we want. For example, in object T { def f { object U } } the owner of U is T, so UModuleClass.isStatic is true. Phase travel does not help here.

    Definition Classes
    BCodeHelpers
  20. def methodSymbols(cd: G.ClassDef): List[G.Symbol]
    Definition Classes
    BCodeHelpers
  21. final def mkArray(xs: List[Label]): Array[Label]
    Definition Classes
    BCodeIdiomatic
  22. final def mkArray(xs: List[String]): Array[String]
    Definition Classes
    BCodeIdiomatic
  23. final def mkArray(xs: List[BTypesFromSymbols.BType]): Array[BTypesFromSymbols.BType]
    Definition Classes
    BCodeIdiomatic
  24. final def mkArrayReverse(xs: List[Int]): Array[Int]
    Definition Classes
    BCodeIdiomatic
  25. final def mkArrayReverse(xs: List[String]): Array[String]
    Definition Classes
    BCodeIdiomatic
  26. def needsStaticImplMethod(sym: G.Symbol): Boolean
    Definition Classes
    BCodeHelpers
  27. def nextEnclosing(sym: G.Symbol): G.Symbol

    The next enclosing definition in the source structure.

    The next enclosing definition in the source structure. Includes anonymous function classes under delambdafy:inline, even though they are only generated during UnCurry.

    Definition Classes
    BCodeHelpers
  28. def nextEnclosingClass(sym: G.Symbol): G.Symbol
    Definition Classes
    BCodeHelpers
  29. def serialVUID(csym: G.Symbol): Option[Long]
    Definition Classes
    BCodeHelpers
  30. final def traitSuperAccessorName(sym: G.Symbol): G.Name
    Definition Classes
    BCodeHelpers