Scala Compiler2.12.3 < 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 GenBCode extends BCodeSyncAndTry
  Definition Classes
    jvm
- AsmpBytecodeWriter
- BCAnnotGen
- BCClassGen
- BCForwardersGen
- BCInnerClassGen
- BCJGenSigGen
- BCPickles
- BCodePhase
- BytecodeWriter
- CClassWriter
- ClassBytecodeWriter
- DirectToJarfileWriter
- DumpBytecodeWriter
- EnclosingMethodEntry
- InsnIterInsnList
- InsnIterMethodNode
- JAndroidBuilder
- JBeanInfoBuilder
- JCodeMethodN
- JCommonBuilder
- JMirrorBuilder
- LabelDefsFinder
- PlainBodyBuilder
- PlainClassBuilder
- PlainSkelBuilder
- StdPhase
- SyncAndTryBuilder
- delambdafyInline
- isJavaEntryPoint

c

scala.tools.nsc.backend.jvm.GenBCode

# PlainClassBuilder 

###

#### final class PlainClassBuilder extends SyncAndTryBuilder

Source
  GenBCode.scala

Linear Supertypes
GenBCode.SyncAndTryBuilder, GenBCode.PlainBodyBuilder, GenBCode.PlainSkelBuilder, GenBCode.BCPickles, GenBCode.BCForwardersGen, GenBCode.BCJGenSigGen, GenBCode.JAndroidBuilder, GenBCode.BCAnnotGen, GenBCode.BCClassGen, GenBCode.BCInnerClassGen, AnyRef, Any
Type Hierarchy
 
Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. PlainClassBuilder
2. SyncAndTryBuilder
3. PlainBodyBuilder
4. PlainSkelBuilder
5. BCPickles
6. BCForwardersGen
7. BCJGenSigGen
8. JAndroidBuilder
9. BCAnnotGen
10. BCClassGen
11. BCInnerClassGen
12. AnyRef
13. 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 PlainClassBuilder(cunit: Global.CompilationUnit)

### Type Members

1.  case class Local (tk: BTypesFromSymbols.BType, name: String, idx: Int, isSynth: Boolean) extends Product with Serializable
   Definition Classes
     PlainSkelBuilder
2.  case class BoundEH (patSymbol: Global.Symbol, caseBody: Global.Tree) extends EHClause with Product with Serializable
   Definition Classes
     SyncAndTryBuilder
3.  trait EHClause extends AnyRef
   Definition Classes
     SyncAndTryBuilder
4.  case class NamelessEH (typeToDrop: BTypesFromSymbols.ClassBType, caseBody: Global.Tree) extends EHClause with Product with Serializable
   Definition Classes
     SyncAndTryBuilder

### Value Members

1.  object bc extends BCodeSkelBuilder.JCodeMethodN
   Definition Classes
     PlainSkelBuilder
2.  object locals
   Definition Classes
     PlainSkelBuilder
3.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
4.  final def ##(): Int
   Definition Classes
     AnyRef → Any
5.  def +(other: String): String
   Implicit
     This member is added by an implicit conversion from PlainClassBuilder to any2stringadd[PlainClassBuilder] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd
6.  def ->[B](y: B): (PlainClassBuilder, B)
   Implicit
     This member is added by an implicit conversion from PlainClassBuilder to ArrowAssoc[PlainClassBuilder] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()
7.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
8.  val MIN_SWITCH_DENSITY: Double
   Definition Classes
     BCClassGen
9.  final val MaximumJvmParameters: Int(254)
   Definition Classes
     PlainSkelBuilder
10.  def adapt(from: BTypesFromSymbols.BType, to: BTypesFromSymbols.BType): Unit
    Definition Classes
      PlainBodyBuilder
11.  def addClassFields(): Unit
    Definition Classes
      PlainSkelBuilder
12.  def addForwarders(isRemoteClass: Boolean, jclass: ClassVisitor, jclassName: String, moduleClass: Global.Symbol): Unit
    Definition Classes
      BCForwardersGen
13.  def addRemoteExceptionAnnot(isRemoteClass: Boolean, isJMethodPublic: Boolean, meth: Global.Symbol): Unit
    Definition Classes
      BCForwardersGen
14.  def addSerialVUID(id: Long, jclass: ClassVisitor): Unit
    Definition Classes
      BCClassGen
15.  val androidFieldName: Global.TermName
    Definition Classes
      JAndroidBuilder
16.  final def arrEncode(sb: Global.ScalaSigBytes): Array[String]
    Definition Classes
      BCAnnotGen
17.  final def asInstanceOf[T0]: T0
    Definition Classes
      Any
18.  var claszSymbol: Global.Symbol
    Definition Classes
      PlainSkelBuilder
19.  var cleanups: List[Label]
    Definition Classes
      PlainSkelBuilder
20.  def clone(): AnyRef
    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
21.  var cnode: ClassNode
    Definition Classes
      PlainSkelBuilder
22.  def createJAttribute(name: String, b: Array[Byte], offset: Int, len: Int): Attribute
    Definition Classes
      BCPickles
23.  def currProgramPoint(): Label
    Definition Classes
      PlainSkelBuilder
24.  def debugLevel: Int
    Definition Classes
      BCInnerClassGen
25.  def descriptorForErasedType(tp: Global.Type): String
    Definition Classes
      BCAnnotGen
26.  var earlyReturnVar: Global.Symbol
    Definition Classes
      PlainSkelBuilder
27.  def emit(opc: Int): Unit
    Definition Classes
      PlainBodyBuilder
28.  def emitAnnotations(fw: FieldVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
29.  def emitAnnotations(mw: MethodVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
30.  def emitAnnotations(cw: ClassVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
31.  def emitArgument(av: AnnotationVisitor, name: String, arg: Global.ClassfileAnnotArg): Unit
    Definition Classes
      BCAnnotGen
32.  def emitAssocs(av: AnnotationVisitor, assocs: List[(Global.Name, Global.ClassfileAnnotArg)]): Unit
    Definition Classes
      BCAnnotGen
33.  def emitFinalizer(finalizer: Global.Tree, tmp: Global.Symbol, isDuplicate: Boolean): Unit
    Definition Classes
      SyncAndTryBuilder
34.  final val emitLines: Boolean
    Definition Classes
      BCInnerClassGen
35.  def emitLocalVarScope(sym: Global.Symbol, start: Label, end: Label, force: Boolean = false): Unit
    Definition Classes
      PlainSkelBuilder
36.  def emitParamAnnotations(jmethod: MethodVisitor, pannotss: List[List[Global.AnnotationInfo]]): Unit
    Definition Classes
      BCAnnotGen
37.  def emitParamNames(jmethod: MethodVisitor, params: List[Global.Symbol]): Unit
    Definition Classes
      BCAnnotGen
38.  final val emitSource: Boolean
    Definition Classes
      BCInnerClassGen
39.  final val emitVars: Boolean
    Definition Classes
      BCInnerClassGen
40.  def emitZeroOf(tk: BTypesFromSymbols.BType): Unit
    Definition Classes
      PlainBodyBuilder
41.  def ensuring(cond: (PlainClassBuilder) ⇒ Boolean, msg: ⇒ Any): PlainClassBuilder
    Implicit
      This member is added by an implicit conversion from PlainClassBuilder to Ensuring[PlainClassBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
42.  def ensuring(cond: (PlainClassBuilder) ⇒ Boolean): PlainClassBuilder
    Implicit
      This member is added by an implicit conversion from PlainClassBuilder to Ensuring[PlainClassBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
43.  def ensuring(cond: Boolean, msg: ⇒ Any): PlainClassBuilder
    Implicit
      This member is added by an implicit conversion from PlainClassBuilder to Ensuring[PlainClassBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
44.  def ensuring(cond: Boolean): PlainClassBuilder
    Implicit
      This member is added by an implicit conversion from PlainClassBuilder to Ensuring[PlainClassBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
45.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
46.  def equals(arg0: Any): Boolean
    Definition Classes
      AnyRef → Any
47.  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
48.  def fieldLoad(field: Global.Symbol, hostClass: Global.Symbol): Unit
    Definition Classes
      PlainBodyBuilder
49.  def fieldStore(field: Global.Symbol, hostClass: Global.Symbol): Unit
    Definition Classes
      PlainBodyBuilder
50.  def finalize(): Unit
    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( classOf[java.lang.Throwable] )
51.  def formatted(fmtstr: String): String
    Implicit
      This member is added by an implicit conversion from PlainClassBuilder to StringFormat[PlainClassBuilder] performed by method StringFormat in scala.Predef.
    Definition Classes
      StringFormat
    Annotations
      @inline()
52.  def gen(tree: Global.Tree): Unit
    Definition Classes
      PlainSkelBuilder
53.  def genArithmeticOp(tree: Global.Tree, code: Int): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
54.  def genArrayOp(tree: Global.Tree, code: Int, expectedType: BTypesFromSymbols.BType): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
55.  def genBlock(tree: Global.Block, expectedType: BTypesFromSymbols.BType): Unit
    Definition Classes
      PlainBodyBuilder
56.  def genCallMethod(method: Global.Symbol, style: InvokeStyle, pos: Global.Position, specificReceiver: Global.Symbol = null): BTypesFromSymbols.BType

    Generate a method invocation.

    Generate a method invocation. If `specificReceiver != null`, it is used as receiver in the invocation instruction, otherwise `method.owner`. A specific receiver class is needed to prevent an IllegalAccessError, (aladdin bug 455). Same for super calls, scala/bug#7936.

    Definition Classes
      PlainBodyBuilder
57.  def genCast(to: BTypesFromSymbols.RefBType, cast: Boolean): Unit
    Definition Classes
      PlainBodyBuilder
58.  def genCoercion(code: Int): Unit
    Definition Classes
      PlainBodyBuilder
59.  def genConstant(const: Global.Constant): Unit
    Definition Classes
      PlainBodyBuilder
60.  def genConversion(from: BTypesFromSymbols.BType, to: BTypesFromSymbols.BType, cast: Boolean): Unit
    Definition Classes
      PlainBodyBuilder
61.  def genDefDef(dd: Global.DefDef): Unit
    Definition Classes
      PlainSkelBuilder
62.  def genEqEqPrimitive(l: Global.Tree, r: Global.Tree, success: Label, failure: Label, targetIfNoJump: Label, pos: Global.Position): Unit
    Definition Classes
      PlainBodyBuilder
63.  def genInvokeDynamicLambda(lambdaTarget: Global.Symbol, arity: Int, functionalInterface: Global.Symbol, sam: Global.Symbol, isSerializable: Boolean, addScalaSerializableMarker: Boolean): Unit
    Definition Classes
      PlainBodyBuilder
64.  def genLoad(tree: Global.Tree, expectedType: BTypesFromSymbols.BType): Unit
    Definition Classes
      PlainBodyBuilder → PlainSkelBuilder
65.  def genLoad(tree: Global.Tree): Unit
    Definition Classes
      PlainBodyBuilder
66.  def genLoadArguments(args: List[Global.Tree], btpes: List[BTypesFromSymbols.BType]): Unit
    Definition Classes
      PlainBodyBuilder
67.  def genLoadIf(tree: Global.If, expectedType: BTypesFromSymbols.BType): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
68.  def genLoadLabelArguments(args: List[Global.Tree], lblDef: Global.LabelDef, gotoPos: Global.Position): Unit
    Definition Classes
      PlainBodyBuilder
69.  def genLoadModule(module: Global.Symbol): Unit
    Definition Classes
      PlainBodyBuilder
70.  def genLoadModule(tree: Global.Tree): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
71.  def genLoadQualifier(tree: Global.Tree): Unit
    Definition Classes
      PlainBodyBuilder
72.  def genLoadTry(tree: Global.Try): BTypesFromSymbols.BType
    Definition Classes
      SyncAndTryBuilder → PlainBodyBuilder
73.  def genPlainClass(cd: Global.ClassDef): Unit
    Definition Classes
      PlainSkelBuilder
74.  def genPrimitiveOp(tree: Global.Apply, expectedType: BTypesFromSymbols.BType): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
75.  def genScalaHash(tree: Global.Tree, applyPos: Global.Position): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
76.  def genStat(tree: Global.Tree): Unit
    Definition Classes
      PlainBodyBuilder
77.  def genStringConcat(tree: Global.Tree): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
78.  def genSynchronized(tree: Global.Apply, expectedType: BTypesFromSymbols.BType): BTypesFromSymbols.BType
    Definition Classes
      SyncAndTryBuilder → PlainBodyBuilder
79.  def genThrow(expr: Global.Tree): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
80.  def getAnnotPickle(jclassName: String, sym: Global.Symbol): Option[Global.AnnotationInfo]
    Definition Classes
      BCPickles
81.  final def getClass(): Class[_]
    Definition Classes
      AnyRef → Any
82.  def getExceptions(excs: List[Global.AnnotationInfo]): List[String]
    Definition Classes
      BCForwardersGen
83.  def getGenericSignature(sym: Global.Symbol, owner: Global.Symbol, memberTpe: Global.Type): String
    Definition Classes
      BCJGenSigGen
84.  def getGenericSignature(sym: Global.Symbol, owner: Global.Symbol): String
    Definition Classes
      BCJGenSigGen
85.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
86.  def ifOneIsNull(l: Global.Tree, r: Global.Tree): Global.Tree

    If l or r is constant null, returns the other ; otherwise null

    If l or r is constant null, returns the other ; otherwise null

    Definition Classes
      PlainBodyBuilder
87.  def initJMethod(flags: Int, params: List[Global.Symbol]): Unit
    Definition Classes
      PlainSkelBuilder
88.  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
89.  def isAndroidParcelableClass(sym: Global.Symbol): Boolean
    Definition Classes
      JAndroidBuilder
90.  def isAtProgramPoint(lbl: Label): Boolean
    Definition Classes
      PlainSkelBuilder
91.  var isCZParcelable: Boolean
    Definition Classes
      PlainSkelBuilder
92.  var isCZRemote: Boolean
    Definition Classes
      PlainSkelBuilder
93.  var isCZStaticModule: Boolean
    Definition Classes
      PlainSkelBuilder
94.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
95.  def isLiteral(t: Global.Tree): Boolean
    Definition Classes
      PlainBodyBuilder
96.  var isMethSymStaticCtor: Boolean
    Definition Classes
      PlainSkelBuilder
97.  var isModuleInitialized: Boolean
    Definition Classes
      PlainSkelBuilder
98.  def isNonNullExpr(t: Global.Tree): Boolean
    Definition Classes
      PlainBodyBuilder
99.  def isNull(t: Global.Tree): Boolean

    Some useful equality helpers.

    Some useful equality helpers.

    Definition Classes
      PlainBodyBuilder
100.  def isPrimitive(fun: Global.Symbol): Boolean
     Definition Classes
       PlainBodyBuilder
101.  var jMethodName: String
     Definition Classes
       PlainSkelBuilder
102.  var jumpDest: Map[Global.Symbol, Label]
     Definition Classes
       PlainSkelBuilder
103.  var labelDef: Map[Global.Symbol, Global.LabelDef]
     Definition Classes
       PlainSkelBuilder
104.  var labelDefsAtOrUnder: Map[Global.Tree, List[Global.LabelDef]]
     Definition Classes
       PlainSkelBuilder
105.  var lastEmittedLineNr: Int
     Definition Classes
       PlainSkelBuilder
106.  def lastInsn: AbstractInsnNode
     Definition Classes
       PlainSkelBuilder
107.  def legacyAddCreatorCode(clinit: MethodVisitor, cnode: ClassNode, thisName: String): Unit
     Definition Classes
       JAndroidBuilder
108.  def liftStringConcat(tree: Global.Tree): List[Global.Tree]
     Definition Classes
       PlainBodyBuilder
109.  def lineNumber(tree: Global.Tree): Unit
     Definition Classes
       PlainSkelBuilder
110.  def log(msg: ⇒ AnyRef): Unit
     Definition Classes
       PlainSkelBuilder
111.  def markProgramPoint(lbl: Label): Unit
     Definition Classes
       PlainSkelBuilder
112.  def mayCleanStack(tree: Global.Tree): Boolean
     Definition Classes
       SyncAndTryBuilder
113.  var methSymbol: Global.Symbol
     Definition Classes
       PlainSkelBuilder
114.  var mnode: MethodNode
     Definition Classes
       PlainSkelBuilder
115.  final def ne(arg0: AnyRef): Boolean
     Definition Classes
       AnyRef
116.  def nopIfNeeded(lbl: Label): Unit
     Definition Classes
       SyncAndTryBuilder
117.  final def notify(): Unit
     Definition Classes
       AnyRef
118.  final def notifyAll(): Unit
     Definition Classes
       AnyRef
119.  def paramTKs(app: Global.Apply): List[BTypesFromSymbols.BType]
     Definition Classes
       PlainSkelBuilder
120.  def pickleMarkerForeign: Attribute
     Definition Classes
       BCPickles
121.  def pickleMarkerLocal: Attribute
     Definition Classes
       BCPickles
122.  def programPoint(labelSym: Global.Symbol): Label
     Definition Classes
       PlainSkelBuilder
123.  def protect(start: Label, end: Label, handler: Label, excType: BTypesFromSymbols.ClassBType): Unit
     Definition Classes
       SyncAndTryBuilder
124.  def registerCleanup(finCleanup: Label): Unit
     Definition Classes
       PlainSkelBuilder
125.  def resetMethodBookkeeping(dd: Global.DefDef): Unit
     Definition Classes
       PlainSkelBuilder
126.  var returnType: BTypesFromSymbols.BType
     Definition Classes
       PlainSkelBuilder
127.  var shouldEmitCleanup: Boolean
     Definition Classes
       PlainSkelBuilder
128.  def symInfoTK(sym: Global.Symbol): BTypesFromSymbols.BType
     Definition Classes
       PlainSkelBuilder
129.  final def synchronized[T0](arg0: ⇒ T0): T0
     Definition Classes
       AnyRef
130.  def testOpForPrimitive(primitiveCode: Int): TestOp
     Definition Classes
       PlainBodyBuilder
131.  var thisBType: BTypesFromSymbols.ClassBType
     Definition Classes
       PlainSkelBuilder
132.  def toString(): String
     Definition Classes
       AnyRef → Any
133.  def tpeTK(tree: Global.Tree): BTypesFromSymbols.BType
     Definition Classes
       PlainSkelBuilder
134.  def ubytesToCharArray(bytes: Array[Byte]): Array[Char]
     Definition Classes
       BCAnnotGen
135.  def unregisterCleanup(finCleanup: Label): Unit
     Definition Classes
       PlainSkelBuilder
136.  var varsInScope: List[(Global.Symbol, Label)]
     Definition Classes
       PlainSkelBuilder
137.  val versionPickle: PickleBuffer
     Definition Classes
       BCPickles
138.  final def wait(): Unit
     Definition Classes
       AnyRef
     Annotations
       @throws( ... )
139.  final def wait(arg0: Long, arg1: Int): Unit
     Definition Classes
       AnyRef
     Annotations
       @throws( ... )
140.  final def wait(arg0: Long): Unit
     Definition Classes
       AnyRef
     Annotations
       @throws( ... )
141.  def →[B](y: B): (PlainClassBuilder, B)
     Implicit
       This member is added by an implicit conversion from PlainClassBuilder to ArrowAssoc[PlainClassBuilder] performed by method ArrowAssoc in scala.Predef.
     Definition Classes
       ArrowAssoc

### Inherited from GenBCode.SyncAndTryBuilder

### Inherited from GenBCode.PlainBodyBuilder

### Inherited from GenBCode.PlainSkelBuilder

### Inherited from GenBCode.BCPickles

### Inherited from GenBCode.BCForwardersGen

### Inherited from GenBCode.BCJGenSigGen

### Inherited from GenBCode.JAndroidBuilder

### Inherited from GenBCode.BCAnnotGen

### Inherited from GenBCode.BCClassGen

### Inherited from GenBCode.BCInnerClassGen

### Inherited from AnyRef

### Inherited from Any

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

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

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

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

### Ungrouped