Scala Compiler2.13.7 < 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 BCodeSyncAndTry extends BCodeBodyBuilder
  Definition Classes
    jvm
- BCAnnotGen
- BCClassGen
- BCForwardersGen
- BCInnerClassGen
- BCJGenSigGen
- BCPickles
- EnclosingMethodEntry
- InsnIterInsnList
- InsnIterMethodNode
- JAndroidBuilder
- JCodeMethodN
- JCommonBuilder
- JMirrorBuilder
- LabelDefsFinder
- PlainBodyBuilder
- PlainSkelBuilder
- SyncAndTryBuilder
- delambdafyInline
- isJavaEntryPoint

c

scala.tools.nsc.backend.jvm.BCodeSyncAndTry

# SyncAndTryBuilder

###

#### class SyncAndTryBuilder extends PlainBodyBuilder

Source
  BCodeSyncAndTry.scala

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

1. Alphabetic
2. By Inheritance

Inherited

1. SyncAndTryBuilder
2. PlainBodyBuilder
3. PlainSkelBuilder
4. BCPickles
5. BCForwardersGen
6. BCJGenSigGen
7. JAndroidBuilder
8. BCAnnotGen
9. BCClassGen
10. BCInnerClassGen
11. AnyRef
12. Any

Implicitly

1. by any2stringadd
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Instance Constructors

1.  new SyncAndTryBuilder(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
3.  sealed trait EHClause extends AnyRef
4.  case class NamelessEH(typeToDrop: BTypesFromSymbols.ClassBType, caseBody: Global.Tree) extends EHClause with Product with Serializable

### 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 SyncAndTryBuilder toany2stringadd[SyncAndTryBuilder] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd
6.  def ->[B](y: B): (SyncAndTryBuilder, B)
   Implicit
     This member is added by an implicit conversion from SyncAndTryBuilder toArrowAssoc[SyncAndTryBuilder] 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(jclass: ClassVisitor, jclassName: String, moduleClass: Global.Symbol): Unit
    Definition Classes
      BCForwardersGen
13.  def addSerialVUID(id: Long, jclass: ClassVisitor): Unit
    Definition Classes
      BCClassGen
14.  val androidFieldName: Global.TermName
    Definition Classes
      JAndroidBuilder
15.  final def asInstanceOf[T0]: T0
    Definition Classes
      Any
16.  def assignModuleInstanceField(meth: MethodVisitor): Unit
    Attributes
      protected
    Definition Classes
      PlainSkelBuilder
17.  var claszSymbol: Global.Symbol
    Definition Classes
      PlainSkelBuilder
18.  var cleanups: List[Label]
    Definition Classes
      PlainSkelBuilder
19.  def clone(): AnyRef
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.CloneNotSupportedException]) @native()
20.  var cnode: ClassNode
    Definition Classes
      PlainSkelBuilder
21.  def createJAttribute(name: String, b: Array[Byte], offset: Int, len: Int): Attribute
    Definition Classes
      BCPickles
22.  def currProgramPoint(): Label
    Definition Classes
      PlainSkelBuilder
23.  def debugLevel: Int
    Definition Classes
      BCInnerClassGen
24.  def descriptorForErasedType(tp: Global.Type): String
    Definition Classes
      BCAnnotGen
25.  var earlyReturnVar: Global.Symbol
    Definition Classes
      PlainSkelBuilder
26.  def emit(opc: Int): Unit
    Definition Classes
      PlainBodyBuilder
27.  def emitAnnotations(fw: FieldVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
28.  def emitAnnotations(mw: MethodVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
29.  def emitAnnotations(cw: ClassVisitor, annotations: List[Global.AnnotationInfo]): Unit
    Definition Classes
      BCAnnotGen
30.  def emitArgument(av: AnnotationVisitor, name: String, arg: Global.ClassfileAnnotArg): Unit
    Definition Classes
      BCAnnotGen
31.  def emitAssocs(av: AnnotationVisitor, assocs: List[(Global.Name, Global.ClassfileAnnotArg)]): Unit
    Definition Classes
      BCAnnotGen
32.  def emitFinalizer(finalizer: Global.Tree, tmp: Global.Symbol, isDuplicate: Boolean): Unit
33.  final val emitLines: Boolean
    Definition Classes
      BCInnerClassGen
34.  def emitLocalVarScope(sym: Global.Symbol, start: Label, end: Label, force: Boolean = false): Unit
    Definition Classes
      PlainSkelBuilder
35.  def emitParamAnnotations(jmethod: MethodVisitor, pannotss: List[List[Global.AnnotationInfo]]): Unit
    Definition Classes
      BCAnnotGen
36.  def emitParamNames(jmethod: MethodVisitor, params: List[Global.Symbol]): Unit
    Definition Classes
      BCAnnotGen
37.  final val emitSource: Boolean
    Definition Classes
      BCInnerClassGen
38.  final val emitVars: Boolean
    Definition Classes
      BCInnerClassGen
39.  def emitZeroOf(tk: BTypesFromSymbols.BType): Unit
    Definition Classes
      PlainBodyBuilder
40.  def ensuring(cond: (SyncAndTryBuilder) => Boolean, msg: => Any): SyncAndTryBuilder
    Implicit
      This member is added by an implicit conversion from SyncAndTryBuilder toEnsuring[SyncAndTryBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
41.  def ensuring(cond: (SyncAndTryBuilder) => Boolean): SyncAndTryBuilder
    Implicit
      This member is added by an implicit conversion from SyncAndTryBuilder toEnsuring[SyncAndTryBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
42.  def ensuring(cond: Boolean, msg: => Any): SyncAndTryBuilder
    Implicit
      This member is added by an implicit conversion from SyncAndTryBuilder toEnsuring[SyncAndTryBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
43.  def ensuring(cond: Boolean): SyncAndTryBuilder
    Implicit
      This member is added by an implicit conversion from SyncAndTryBuilder toEnsuring[SyncAndTryBuilder] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
44.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
45.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
46.  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 scala.reflect.internal.AnnotationInfos.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
47.  def fieldLoad(field: Global.Symbol, hostClass: Global.Symbol): Unit
    Definition Classes
      PlainBodyBuilder
48.  def fieldStore(field: Global.Symbol, hostClass: Global.Symbol): Unit
    Definition Classes
      PlainBodyBuilder
49.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
50.  def gen(tree: Global.Tree): Unit
    Definition Classes
      PlainSkelBuilder
51.  def genArithmeticOp(tree: Global.Tree, code: Int): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
52.  def genArrayOp(tree: Global.Tree, code: Int, expectedType: BTypesFromSymbols.BType): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
53.  def genBlock(tree: Global.Block, expectedType: BTypesFromSymbols.BType): Unit
    Definition Classes
      PlainBodyBuilder
54.  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
55.  def genCast(to: BTypesFromSymbols.RefBType, cast: Boolean): Unit
    Definition Classes
      PlainBodyBuilder
56.  def genCoercion(code: Int): Unit
    Definition Classes
      PlainBodyBuilder
57.  def genConstant(const: Global.Constant): Unit
    Definition Classes
      PlainBodyBuilder
58.  def genConversion(from: BTypesFromSymbols.BType, to: BTypesFromSymbols.BType, cast: Boolean): Unit
    Definition Classes
      PlainBodyBuilder
59.  def genDefDef(dd: Global.DefDef): Unit
    Definition Classes
      PlainSkelBuilder
60.  def genEqEqPrimitive(l: Global.Tree, r: Global.Tree, success: Label, failure: Label, targetIfNoJump: Label, pos: Global.Position): Unit
    Definition Classes
      PlainBodyBuilder
61.  def genInvokeDynamicLambda(canLMF: Global.delambdafy.LambdaMetaFactoryCapable): Unit
    Definition Classes
      PlainBodyBuilder
62.  def genLoad(tree: Global.Tree, expectedType: BTypesFromSymbols.BType): Unit
    Definition Classes
      PlainBodyBuilder → PlainSkelBuilder
63.  def genLoad(tree: Global.Tree): Unit
    Definition Classes
      PlainBodyBuilder
64.  def genLoadArguments(args: List[Global.Tree], btpes: List[BTypesFromSymbols.BType]): Unit
    Definition Classes
      PlainBodyBuilder
65.  def genLoadIf(tree: Global.If, expectedType: BTypesFromSymbols.BType): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
66.  def genLoadLabelArguments(args: List[Global.Tree], lblDef: Global.LabelDef, gotoPos: Global.Position): Unit
    Definition Classes
      PlainBodyBuilder
67.  def genLoadModule(module: Global.Symbol): Unit
    Definition Classes
      PlainBodyBuilder
68.  def genLoadModule(tree: Global.Tree): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
69.  def genLoadQualifier(tree: Global.Tree): Unit
    Definition Classes
      PlainBodyBuilder
70.  def genLoadTry(tree: Global.Try): BTypesFromSymbols.BType
    Definition Classes
      SyncAndTryBuilder → PlainBodyBuilder
71.  def genPlainClass(cd0: Global.ClassDef): Unit
    Definition Classes
      PlainSkelBuilder
72.  def genPrimitiveOp(tree: Global.Apply, expectedType: BTypesFromSymbols.BType): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
73.  def genScalaHash(tree: Global.Tree, applyPos: Global.Position): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
74.  def genStat(tree: Global.Tree): Unit
    Definition Classes
      PlainBodyBuilder
75.  def genStringConcat(tree: Global.Tree): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
76.  def genSynchronized(tree: Global.Apply, expectedType: BTypesFromSymbols.BType): BTypesFromSymbols.BType
    Definition Classes
      SyncAndTryBuilder → PlainBodyBuilder
77.  def genThrow(expr: Global.Tree): BTypesFromSymbols.BType
    Definition Classes
      PlainBodyBuilder
78.  def getAnnotPickle(jclassName: String, sym: Global.Symbol): Option[Global.AnnotationInfo]
    Definition Classes
      BCPickles
79.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
80.  def getExceptions(excs: List[Global.AnnotationInfo]): List[String]
    Definition Classes
      BCForwardersGen
81.  def getGenericSignature(sym: Global.Symbol, owner: Global.Symbol, memberTpe: Global.Type): String
    Definition Classes
      BCJGenSigGen
82.  def getGenericSignature(sym: Global.Symbol, owner: Global.Symbol): String
    Definition Classes
      BCJGenSigGen
83.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
84.  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
85.  def initJMethod(flags: Int, params: List[Global.Symbol]): Unit
    Definition Classes
      PlainSkelBuilder
86.  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
87.  def isAndroidParcelableClass(sym: Global.Symbol): Boolean
    Definition Classes
      JAndroidBuilder
88.  def isAtProgramPoint(lbl: Label): Boolean
    Definition Classes
      PlainSkelBuilder
89.  var isCZParcelable: Boolean
    Definition Classes
      PlainSkelBuilder
90.  var isCZStaticModule: Boolean
    Definition Classes
      PlainSkelBuilder
91.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
92.  def isLiteral(t: Global.Tree): Boolean
    Definition Classes
      PlainBodyBuilder
93.  var isMethSymStaticCtor: Boolean
    Definition Classes
      PlainSkelBuilder
94.  var isModuleInitialized: Boolean
    Definition Classes
      PlainSkelBuilder
95.  def isNonNullExpr(t: Global.Tree): Boolean
    Definition Classes
      PlainBodyBuilder
96.  def isNull(t: Global.Tree): Boolean

    Some useful equality helpers.

    Some useful equality helpers.

    Definition Classes
      PlainBodyBuilder
97.  def isPrimitive(fun: Global.Symbol): Boolean
    Definition Classes
      PlainBodyBuilder
98.  var jMethodName: String
    Definition Classes
      PlainSkelBuilder
99.  var jumpDest: Map[Global.Symbol, Label]
    Definition Classes
      PlainSkelBuilder
100.  var labelDef: Map[Global.Symbol, Global.LabelDef]
     Definition Classes
       PlainSkelBuilder
101.  var labelDefsAtOrUnder: Map[Global.Tree, List[Global.LabelDef]]
     Definition Classes
       PlainSkelBuilder
102.  var lastEmittedLineNr: Int
     Definition Classes
       PlainSkelBuilder
103.  def lastInsn: AbstractInsnNode
     Definition Classes
       PlainSkelBuilder
104.  def legacyAddCreatorCode(clinit: MethodVisitor, cnode: ClassNode, thisName: String): Unit
     Definition Classes
       JAndroidBuilder
105.  def liftStringConcat(tree: Global.Tree): List[Global.Tree]
     Definition Classes
       PlainBodyBuilder
106.  def lineNumber(tree: Global.Tree): Unit
     Definition Classes
       PlainSkelBuilder
107.  def markProgramPoint(lbl: Label): Unit
     Definition Classes
       PlainSkelBuilder
108.  def mayCleanStack(tree: Global.Tree): Boolean
109.  var methSymbol: Global.Symbol
     Definition Classes
       PlainSkelBuilder
110.  var mnode: MethodNode
     Definition Classes
       PlainSkelBuilder
111.  final def ne(arg0: AnyRef): Boolean
     Definition Classes
       AnyRef
112.  def nopIfNeeded(lbl: Label): Unit
113.  final def notify(): Unit
     Definition Classes
       AnyRef
     Annotations
       @native()
114.  final def notifyAll(): Unit
     Definition Classes
       AnyRef
     Annotations
       @native()
115.  def paramTKs(app: Global.Apply): List[BTypesFromSymbols.BType]
     Definition Classes
       PlainSkelBuilder
116.  def pickleMarkerForeign: Attribute
     Definition Classes
       BCPickles
117.  def pickleMarkerLocal: Attribute
     Definition Classes
       BCPickles
118.  def programPoint(labelSym: Global.Symbol): Label
     Definition Classes
       PlainSkelBuilder
119.  def protect(start: Label, end: Label, handler: Label, excType: BTypesFromSymbols.ClassBType): Unit
120.  def registerCleanup(finCleanup: Label): Unit
     Definition Classes
       PlainSkelBuilder
121.  def resetMethodBookkeeping(dd: Global.DefDef): Unit
     Definition Classes
       PlainSkelBuilder
122.  var returnType: BTypesFromSymbols.BType
     Definition Classes
       PlainSkelBuilder
123.  var shouldEmitCleanup: Boolean
     Definition Classes
       PlainSkelBuilder
124.  def symInfoTK(sym: Global.Symbol): BTypesFromSymbols.BType
     Definition Classes
       PlainSkelBuilder
125.  final def synchronized[T0](arg0: => T0): T0
     Definition Classes
       AnyRef
126.  def testOpForPrimitive(primitiveCode: Int): TestOp
     Definition Classes
       PlainBodyBuilder
127.  var thisBType: BTypesFromSymbols.ClassBType
     Definition Classes
       PlainSkelBuilder
128.  var thisBTypeDescriptor: String
     Definition Classes
       PlainSkelBuilder
129.  def toString(): String
     Definition Classes
       AnyRef → Any
130.  def tpeTK(tree: Global.Tree): BTypesFromSymbols.BType
     Definition Classes
       PlainSkelBuilder
131.  def unregisterCleanup(finCleanup: Label): Unit
     Definition Classes
       PlainSkelBuilder
132.  var varsInScope: List[(Global.Symbol, Label)]
     Definition Classes
       PlainSkelBuilder
133.  val versionPickle: PickleBuffer
     Definition Classes
       BCPickles
134.  final def wait(): Unit
     Definition Classes
       AnyRef
     Annotations
       @throws(classOf[java.lang.InterruptedException])
135.  final def wait(arg0: Long, arg1: Int): Unit
     Definition Classes
       AnyRef
     Annotations
       @throws(classOf[java.lang.InterruptedException])
136.  final def wait(arg0: Long): Unit
     Definition Classes
       AnyRef
     Annotations
       @throws(classOf[java.lang.InterruptedException]) @native()

### Deprecated Value Members

1.  def formatted(fmtstr: String): String
   Implicit
     This member is added by an implicit conversion from SyncAndTryBuilder toStringFormat[SyncAndTryBuilder] performed by method StringFormat in scala.Predef.
   Definition Classes
     StringFormat
   Annotations
     @deprecated @inline()
   Deprecated

     (Since version 2.12.16) Use `formatString.format(value)` instead of `value.formatted(formatString)`, or use the `f""` string interpolator. In Java 15 and later, `formatted` resolves to the new method in String which has reversed parameters.

2.  def →[B](y: B): (SyncAndTryBuilder, B)
   Implicit
     This member is added by an implicit conversion from SyncAndTryBuilder toArrowAssoc[SyncAndTryBuilder] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @deprecated
   Deprecated

     (Since version 2.13.0) Use `->` instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

### Inherited from BCodeSyncAndTry.PlainBodyBuilder

### Inherited from BCodeSyncAndTry.PlainSkelBuilder

### Inherited from BCodeSyncAndTry.BCPickles

### Inherited from BCodeSyncAndTry.BCForwardersGen

### Inherited from BCodeSyncAndTry.BCJGenSigGen

### Inherited from BCodeSyncAndTry.JAndroidBuilder

### Inherited from BCodeSyncAndTry.BCAnnotGen

### Inherited from BCodeSyncAndTry.BCClassGen

### Inherited from BCodeSyncAndTry.BCInnerClassGen

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd fromSyncAndTryBuilder to any2stringadd[SyncAndTryBuilder]

### Inherited by implicit conversion StringFormat fromSyncAndTryBuilder to StringFormat[SyncAndTryBuilder]

### Inherited by implicit conversion Ensuring fromSyncAndTryBuilder to Ensuring[SyncAndTryBuilder]

### Inherited by implicit conversion ArrowAssoc fromSyncAndTryBuilder to ArrowAssoc[SyncAndTryBuilder]

### Ungrouped