Packages

abstract class PlainSkelBuilder extends BCClassGen with BCAnnotGen with BCInnerClassGen with JAndroidBuilder with BCForwardersGen with BCPickles with BCJGenSigGen

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PlainSkelBuilder
  2. BCPickles
  3. BCForwardersGen
  4. BCJGenSigGen
  5. JAndroidBuilder
  6. BCAnnotGen
  7. BCClassGen
  8. BCInnerClassGen
  9. AnyRef
  10. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PlainSkelBuilder(cunit: Global.CompilationUnit)

Type Members

  1. case class Local(tk: BTypesFromSymbols.BType, name: String, idx: Int, isSynth: Boolean) extends Product with Serializable

Abstract Value Members

  1. abstract def genLoad(tree: Global.Tree, expectedType: BTypesFromSymbols.BType): Unit

Concrete Value Members

  1. val MIN_SWITCH_DENSITY: Double
    Definition Classes
    BCClassGen
  2. final val MaximumJvmParameters: Int(254)
  3. def addClassFields(): Unit
  4. def addForwarders(isRemoteClass: Boolean, jclass: ClassVisitor, jclassName: String, moduleClass: Global.Symbol): Unit
    Definition Classes
    BCForwardersGen
  5. def addRemoteExceptionAnnot(isRemoteClass: Boolean, isJMethodPublic: Boolean, meth: Global.Symbol): Unit
    Definition Classes
    BCForwardersGen
  6. def addSerialVUID(id: Long, jclass: ClassVisitor): Unit
    Definition Classes
    BCClassGen
  7. val androidFieldName: Global.TermName
    Definition Classes
    JAndroidBuilder
  8. final def arrEncode(sb: Global.ScalaSigBytes): Array[String]
    Definition Classes
    BCAnnotGen
  9. var claszSymbol: Global.Symbol
  10. var cleanups: List[Label]
  11. var cnode: ClassNode
  12. def createJAttribute(name: String, b: Array[Byte], offset: Int, len: Int): Attribute
    Definition Classes
    BCPickles
  13. def currProgramPoint(): Label
  14. def debugLevel: Int
    Definition Classes
    BCInnerClassGen
  15. def descriptorForErasedType(tp: Global.Type): String
    Definition Classes
    BCAnnotGen
  16. var earlyReturnVar: Global.Symbol
  17. def emitAnnotations(fw: FieldVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
    BCAnnotGen
  18. def emitAnnotations(mw: MethodVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
    BCAnnotGen
  19. def emitAnnotations(cw: ClassVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
    BCAnnotGen
  20. def emitArgument(av: AnnotationVisitor, name: String, arg: Global.ClassfileAnnotArg): Unit
    Definition Classes
    BCAnnotGen
  21. def emitAssocs(av: AnnotationVisitor, assocs: List[(Global.Name, Global.ClassfileAnnotArg)]): Unit
    Definition Classes
    BCAnnotGen
  22. final val emitLines: Boolean
    Definition Classes
    BCInnerClassGen
  23. def emitLocalVarScope(sym: Global.Symbol, start: Label, end: Label, force: Boolean = false): Unit
  24. def emitParamAnnotations(jmethod: MethodVisitor, pannotss: List[List[Global.AnnotationInfo]]): Unit
    Definition Classes
    BCAnnotGen
  25. def emitParamNames(jmethod: MethodVisitor, params: List[Global.Symbol]): Unit
    Definition Classes
    BCAnnotGen
  26. final val emitSource: Boolean
    Definition Classes
    BCInnerClassGen
  27. final val emitVars: Boolean
    Definition Classes
    BCInnerClassGen
  28. def erasedType(tp: Global.Type): Global.Type

    Annotations are not processed by the compilation pipeline like ordinary trees.

    Annotations are not processed by the compilation pipeline like ordinary trees. Instead, the typer extracts them into AnnotationInfo objects which are attached to the corresponding symbol (sym.annotations) or type (as an AnnotatedType, eliminated by erasure).

    For Scala annotations this is OK: they are stored in the pickle and ignored by the backend. Java annotations on the other hand are additionally emitted to the classfile in Java's format.

    This means that Type instances within an AnnotationInfo reach the backend non-erased. Examples:

    • @(javax.annotation.Resource @annotation.meta.getter) val x = 0 Here, annotationInfo.atp is an AnnotatedType.
    • @SomeAnnotation[T] val x = 0 In principle, the annotationInfo.atp is a non-erased type ref. However, this cannot actually happen because Java annotations cannot be generic.
    • @javax.annotation.Resource(type = classOf[List[_]]) val x = 0 The annotationInfo.assocs contains a LiteralAnnotArg(Constant(tp)) where tp is the non-erased existential type.
    Definition Classes
    BCAnnotGen
  29. def gen(tree: Global.Tree): Unit
  30. def genDefDef(dd: Global.DefDef): Unit
  31. def genPlainClass(cd: Global.ClassDef): Unit
  32. def getAnnotPickle(jclassName: String, sym: Global.Symbol): Option[Global.AnnotationInfo]
    Definition Classes
    BCPickles
  33. def getExceptions(excs: List[Global.AnnotationInfo]): List[String]
    Definition Classes
    BCForwardersGen
  34. def getGenericSignature(sym: Global.Symbol, owner: Global.Symbol, memberTpe: Global.Type): String
    Definition Classes
    BCJGenSigGen
  35. def getGenericSignature(sym: Global.Symbol, owner: Global.Symbol): String
    Definition Classes
    BCJGenSigGen
  36. def initJMethod(flags: Int, params: List[Global.Symbol]): Unit
  37. final def internalName(sym: Global.Symbol): String

    The class internal name for a given class symbol.

    The class internal name for a given class symbol.

    Definition Classes
    BCInnerClassGen
  38. def isAndroidParcelableClass(sym: Global.Symbol): Boolean
    Definition Classes
    JAndroidBuilder
  39. def isAtProgramPoint(lbl: Label): Boolean
  40. var isCZParcelable: Boolean
  41. var isCZRemote: Boolean
  42. var isCZStaticModule: Boolean
  43. var isMethSymStaticCtor: Boolean
  44. var isModuleInitialized: Boolean
  45. var jMethodName: String
  46. var jumpDest: Map[Global.Symbol, Label]
  47. var labelDef: Map[Global.Symbol, Global.LabelDef]
  48. var labelDefsAtOrUnder: Map[Global.Tree, List[Global.LabelDef]]
  49. var lastEmittedLineNr: Int
  50. def lastInsn: AbstractInsnNode
  51. def legacyAddCreatorCode(clinit: MethodVisitor, cnode: ClassNode, thisName: String): Unit
    Definition Classes
    JAndroidBuilder
  52. def lineNumber(tree: Global.Tree): Unit
  53. def markProgramPoint(lbl: Label): Unit
  54. var methSymbol: Global.Symbol
  55. var mnode: MethodNode
  56. def paramTKs(app: Global.Apply): List[BTypesFromSymbols.BType]
  57. def pickleMarkerForeign: Attribute
    Definition Classes
    BCPickles
  58. def pickleMarkerLocal: Attribute
    Definition Classes
    BCPickles
  59. def programPoint(labelSym: Global.Symbol): Label
  60. def registerCleanup(finCleanup: Label): Unit
  61. def resetMethodBookkeeping(dd: Global.DefDef): Unit
  62. var returnType: BTypesFromSymbols.BType
  63. var shouldEmitCleanup: Boolean
  64. def symInfoTK(sym: Global.Symbol): BTypesFromSymbols.BType
  65. var thisBType: BTypesFromSymbols.ClassBType
  66. def tpeTK(tree: Global.Tree): BTypesFromSymbols.BType
  67. def ubytesToCharArray(bytes: Array[Byte]): Array[Char]
    Definition Classes
    BCAnnotGen
  68. def unregisterCleanup(finCleanup: Label): Unit
  69. var varsInScope: List[(Global.Symbol, Label)]
  70. val versionPickle: PickleBuffer
    Definition Classes
    BCPickles
  71. object bc extends BCodeSkelBuilder.JCodeMethodN
  72. object locals