Scala Compiler2.12.2-20170504-135222-21d12e9 < Back
 

# Packages

-  package root

  The Scala compiler and reflection APIs.

  The Scala compiler and reflection APIs.

  Definition Classes
    root
-  package scala
  Definition Classes
    root
-  package tools
  Definition Classes
    scala
-  package nsc
  Definition Classes
    tools
-  package backend
  Definition Classes
    nsc
-  package jvm
  Definition Classes
    backend
-  abstract class BCodeSkelBuilder extends BCodeHelpers
  Definition Classes
    jvm
- AsmpBytecodeWriter
- BCAnnotGen
- BCClassGen
- BCForwardersGen
- BCInnerClassGen
- BCJGenSigGen
- BCPickles
- BytecodeWriter
- CClassWriter
- ClassBytecodeWriter
- DirectToJarfileWriter
- DumpBytecodeWriter
- EnclosingMethodEntry
- InsnIterInsnList
- InsnIterMethodNode
- JAndroidBuilder
- JBeanInfoBuilder
- JCodeMethodN
- JCommonBuilder
- JMirrorBuilder
- LabelDefsFinder
- PlainSkelBuilder
- StdPhase
- delambdafyInline
- isJavaEntryPoint

c

scala.tools.nsc.backend.jvm.BCodeSkelBuilder

# PlainSkelBuilder 

###

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

Source
  BCodeSkelBuilder.scala

Linear Supertypes
BCodeSkelBuilder.BCPickles, BCodeSkelBuilder.BCForwardersGen, BCodeSkelBuilder.BCJGenSigGen, BCodeSkelBuilder.JAndroidBuilder, BCodeSkelBuilder.BCAnnotGen, BCodeSkelBuilder.BCClassGen, BCodeSkelBuilder.BCInnerClassGen, AnyRef, Any
Known Subclasses
PlainBodyBuilder, SyncAndTryBuilder, PlainClassBuilder
Type Hierarchy
 
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.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##(): Int
   Definition Classes
     AnyRef → Any
3.  def +(other: String): String
   Implicit
     This member is added by an implicit conversion from PlainSkelBuilder to any2stringadd[PlainSkelBuilder] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd
4.  def ->[B](y: B): (PlainSkelBuilder, B)
   Implicit
     This member is added by an implicit conversion from PlainSkelBuilder to ArrowAssoc[PlainSkelBuilder] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()
5.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
6.  val MIN_SWITCH_DENSITY: Double
   Definition Classes
     BCClassGen
7.  final val MaximumJvmParameters: Int(254)
8.  def addClassFields(): Unit
9.  def addForwarders(isRemoteClass: Boolean, jclass: ClassVisitor, jclassName: String, moduleClass: Global.Symbol): Unit
   Definition Classes
     BCForwardersGen
10.  def addRemoteExceptionAnnot(isRemoteClass: Boolean, isJMethodPublic: Boolean, meth: Global.Symbol): Unit
    Definition Classes
      BCForwardersGen
11.  def addSerialVUID(id: Long, jclass: ClassVisitor): Unit
    Definition Classes
      BCClassGen
12.  val androidFieldName: Global.TermName
    Definition Classes
      JAndroidBuilder
13.  final def arrEncode(sb: Global.ScalaSigBytes): Array[String]
    Definition Classes
      BCAnnotGen
14.  final def asInstanceOf[T0]: T0
    Definition Classes
      Any
15.  var claszSymbol: Global.Symbol
16.  var cleanups: List[Label]
17.  def clone(): AnyRef
    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
18.  var cnode: ClassNode
19.  def createJAttribute(name: String, b: Array[Byte], offset: Int, len: Int): Attribute
    Definition Classes
      BCPickles
20.  def currProgramPoint(): Label
21.  def debugLevel: Int
    Definition Classes
      BCInnerClassGen
22.  def descriptorForErasedType(tp: Global.Type): String
    Definition Classes
      BCAnnotGen
23.  var earlyReturnVar: Global.Symbol
24.  def emitAnnotations(fw: FieldVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
25.  def emitAnnotations(mw: MethodVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
26.  def emitAnnotations(cw: ClassVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
27.  def emitArgument(av: AnnotationVisitor, name: String, arg: Global.ClassfileAnnotArg): Unit
    Definition Classes
      BCAnnotGen
28.  def emitAssocs(av: AnnotationVisitor, assocs: List[(Global.Name, Global.ClassfileAnnotArg)]): Unit
    Definition Classes
      BCAnnotGen
29.  final val emitLines: Boolean
    Definition Classes
      BCInnerClassGen
30.  def emitLocalVarScope(sym: Global.Symbol, start: Label, end: Label, force: Boolean = false): Unit
31.  def emitParamAnnotations(jmethod: MethodVisitor, pannotss: List[List[Global.AnnotationInfo]]): Unit
    Definition Classes
      BCAnnotGen
32.  def emitParamNames(jmethod: MethodVisitor, params: List[Global.Symbol]): Unit
    Definition Classes
      BCAnnotGen
33.  final val emitSource: Boolean
    Definition Classes
      BCInnerClassGen
34.  final val emitVars: Boolean
    Definition Classes
      BCInnerClassGen
35.  def ensuring(cond: (PlainSkelBuilder) ⇒ Boolean, msg: ⇒ Any): PlainSkelBuilder
    Implicit
      This member is added by an implicit conversion from PlainSkelBuilder to Ensuring[PlainSkelBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
36.  def ensuring(cond: (PlainSkelBuilder) ⇒ Boolean): PlainSkelBuilder
    Implicit
      This member is added by an implicit conversion from PlainSkelBuilder to Ensuring[PlainSkelBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
37.  def ensuring(cond: Boolean, msg: ⇒ Any): PlainSkelBuilder
    Implicit
      This member is added by an implicit conversion from PlainSkelBuilder to Ensuring[PlainSkelBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
38.  def ensuring(cond: Boolean): PlainSkelBuilder
    Implicit
      This member is added by an implicit conversion from PlainSkelBuilder to Ensuring[PlainSkelBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
39.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
40.  def equals(arg0: Any): Boolean
    Definition Classes
      AnyRef → Any
41.  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
42.  def finalize(): Unit
    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( classOf[java.lang.Throwable] )
43.  def formatted(fmtstr: String): String
    Implicit
      This member is added by an implicit conversion from PlainSkelBuilder to StringFormat[PlainSkelBuilder] performed by method StringFormat in scala.Predef.
    Definition Classes
      StringFormat
    Annotations
      @inline()
44.  def gen(tree: Global.Tree): Unit
45.  def genDefDef(dd: Global.DefDef): Unit
46.  def genPlainClass(cd: Global.ClassDef): Unit
47.  def getAnnotPickle(jclassName: String, sym: Global.Symbol): Option[Global.AnnotationInfo]
    Definition Classes
      BCPickles
48.  final def getClass(): Class[_]
    Definition Classes
      AnyRef → Any
49.  def getExceptions(excs: List[Global.AnnotationInfo]): List[String]
    Definition Classes
      BCForwardersGen
50.  def getGenericSignature(sym: Global.Symbol, owner: Global.Symbol, memberTpe: Global.Type): String
    Definition Classes
      BCJGenSigGen
51.  def getGenericSignature(sym: Global.Symbol, owner: Global.Symbol): String
    Definition Classes
      BCJGenSigGen
52.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
53.  def initJMethod(flags: Int, params: List[Global.Symbol]): Unit
54.  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
55.  def isAndroidParcelableClass(sym: Global.Symbol): Boolean
    Definition Classes
      JAndroidBuilder
56.  def isAtProgramPoint(lbl: Label): Boolean
57.  var isCZParcelable: Boolean
58.  var isCZRemote: Boolean
59.  var isCZStaticModule: Boolean
60.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
61.  var isMethSymStaticCtor: Boolean
62.  var isModuleInitialized: Boolean
63.  var jMethodName: String
64.  var jumpDest: Map[Global.Symbol, Label]
65.  var labelDef: Map[Global.Symbol, Global.LabelDef]
66.  var labelDefsAtOrUnder: Map[Global.Tree, List[Global.LabelDef]]
67.  var lastEmittedLineNr: Int
68.  def lastInsn: AbstractInsnNode
69.  def legacyAddCreatorCode(clinit: MethodVisitor, cnode: ClassNode, thisName: String): Unit
    Definition Classes
      JAndroidBuilder
70.  def lineNumber(tree: Global.Tree): Unit
71.  def log(msg: ⇒ AnyRef): Unit
72.  def markProgramPoint(lbl: Label): Unit
73.  var methSymbol: Global.Symbol
74.  var mnode: MethodNode
75.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
76.  final def notify(): Unit
    Definition Classes
      AnyRef
77.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
78.  def paramTKs(app: Global.Apply): List[BTypesFromSymbols.BType]
79.  def pickleMarkerForeign: Attribute
    Definition Classes
      BCPickles
80.  def pickleMarkerLocal: Attribute
    Definition Classes
      BCPickles
81.  def programPoint(labelSym: Global.Symbol): Label
82.  def registerCleanup(finCleanup: Label): Unit
83.  def resetMethodBookkeeping(dd: Global.DefDef): Unit
84.  var returnType: BTypesFromSymbols.BType
85.  var shouldEmitCleanup: Boolean
86.  def symInfoTK(sym: Global.Symbol): BTypesFromSymbols.BType
87.  final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
      AnyRef
88.  var thisBType: BTypesFromSymbols.ClassBType
89.  def toString(): String
    Definition Classes
      AnyRef → Any
90.  def tpeTK(tree: Global.Tree): BTypesFromSymbols.BType
91.  def ubytesToCharArray(bytes: Array[Byte]): Array[Char]
    Definition Classes
      BCAnnotGen
92.  def unregisterCleanup(finCleanup: Label): Unit
93.  var varsInScope: List[(Global.Symbol, Label)]
94.  val versionPickle: PickleBuffer
    Definition Classes
      BCPickles
95.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
96.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
97.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
98.  def →[B](y: B): (PlainSkelBuilder, B)
    Implicit
      This member is added by an implicit conversion from PlainSkelBuilder to ArrowAssoc[PlainSkelBuilder] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
      ArrowAssoc
99.  object bc extends BCodeSkelBuilder.JCodeMethodN
100.  object locals

### Inherited from BCodeSkelBuilder.BCPickles

### Inherited from BCodeSkelBuilder.BCForwardersGen

### Inherited from BCodeSkelBuilder.BCJGenSigGen

### Inherited from BCodeSkelBuilder.JAndroidBuilder

### Inherited from BCodeSkelBuilder.BCAnnotGen

### Inherited from BCodeSkelBuilder.BCClassGen

### Inherited from BCodeSkelBuilder.BCInnerClassGen

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd from PlainSkelBuilder to any2stringadd[PlainSkelBuilder]

### Inherited by implicit conversion StringFormat from PlainSkelBuilder to StringFormat[PlainSkelBuilder]

### Inherited by implicit conversion Ensuring from PlainSkelBuilder to Ensuring[PlainSkelBuilder]

### Inherited by implicit conversion ArrowAssoc from PlainSkelBuilder to ArrowAssoc[PlainSkelBuilder]

### Ungrouped