abstract class BCodeHelpers extends BCodeIdiomatic
- Alphabetic
- By Inheritance
- BCodeHelpers
- BCodeIdiomatic
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new BCodeHelpers()
Type Members
- trait BCAnnotGen extends BCInnerClassGen
- trait BCClassGen extends BCInnerClassGen
- trait BCForwardersGen extends BCAnnotGen with BCJGenSigGen
- trait BCInnerClassGen extends AnyRef
- trait BCJGenSigGen extends AnyRef
- trait BCPickles extends AnyRef
- final case class EnclosingMethodEntry(owner: String, name: String, methodDescriptor: String) extends Product with Serializable
- trait JAndroidBuilder extends AnyRef
- abstract class JCommonBuilder extends BCInnerClassGen with BCAnnotGen with BCForwardersGen with BCPickles
- class JMirrorBuilder extends JCommonBuilder
- implicit class InsnIterInsnList extends AnyRef
- Definition Classes
- BCodeIdiomatic
- implicit class InsnIterMethodNode extends AnyRef
- Definition Classes
- BCodeIdiomatic
- abstract class JCodeMethodN extends AnyRef
- Definition Classes
- BCodeIdiomatic
- class LabelDefsFinder extends Global.InternalTraverser
- Definition Classes
- BCodeIdiomatic
Abstract Value Members
- abstract val bTypes: BTypesFromSymbols[global.type]
- Definition Classes
- BCodeIdiomatic
- abstract val global: Global
- Definition Classes
- BCodeIdiomatic
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from BCodeHelpers toany2stringadd[BCodeHelpers] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (BCodeHelpers, B)
- Implicit
- This member is added by an implicit conversion from BCodeHelpers toArrowAssoc[BCodeHelpers] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val EMPTY_BTYPE_ARRAY: Array[BTypesFromSymbols.BType]
- Definition Classes
- BCodeIdiomatic
- val EMPTY_INT_ARRAY: Array[Int]
- Definition Classes
- BCodeIdiomatic
- val EMPTY_LABEL_ARRAY: Array[Label]
- Definition Classes
- BCodeIdiomatic
- val EMPTY_STRING_ARRAY: Array[String]
- Definition Classes
- BCodeIdiomatic
- lazy val JavaStringBuilderClassName: InternalName
- Definition Classes
- BCodeIdiomatic
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def classOriginallyNestedInClass(nestedClass: Global.Symbol, enclosingClass: Global.Symbol): Boolean
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def coercionFrom(code: Int): BTypesFromSymbols.BType
- Definition Classes
- BCodeIdiomatic
- final def coercionTo(code: Int): BTypesFromSymbols.BType
- Definition Classes
- BCodeIdiomatic
- def completeSilentlyAndCheckErroneous(sym: Global.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. - def considerAsTopLevelImplementationArtifact(classSym: Global.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.
- def enclosingMethodAttribute(classSym: Global.Symbol, classDesc: (Global.Symbol) => String, methodDesc: (Global.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.
- def ensuring(cond: (BCodeHelpers) => Boolean, msg: => Any): BCodeHelpers
- Implicit
- This member is added by an implicit conversion from BCodeHelpers toEnsuring[BCodeHelpers] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (BCodeHelpers) => Boolean): BCodeHelpers
- Implicit
- This member is added by an implicit conversion from BCodeHelpers toEnsuring[BCodeHelpers] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): BCodeHelpers
- Implicit
- This member is added by an implicit conversion from BCodeHelpers toEnsuring[BCodeHelpers] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): BCodeHelpers
- Implicit
- This member is added by an implicit conversion from BCodeHelpers toEnsuring[BCodeHelpers] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def fieldSymbols(cls: Global.Symbol): List[Global.Symbol]
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def isAnonymousOrLocalClass(classSym: Global.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 ifclassSym
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. - final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def isOriginallyStaticOwner(sym: Global.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.- Annotations
- @tailrec()
- def methodSymbols(cd: Global.ClassDef): List[Global.Symbol]
- final def mkArray(xs: List[Label]): Array[Label]
- Definition Classes
- BCodeIdiomatic
- final def mkArray(xs: List[String]): Array[String]
- Definition Classes
- BCodeIdiomatic
- final def mkArray(xs: List[BTypesFromSymbols.BType]): Array[BTypesFromSymbols.BType]
- Definition Classes
- BCodeIdiomatic
- final def mkArrayReverse(xs: List[Int]): Array[Int]
- Definition Classes
- BCodeIdiomatic
- final def mkArrayReverse(xs: List[String]): Array[String]
- Definition Classes
- BCodeIdiomatic
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def needsStaticImplMethod(sym: Global.Symbol): Boolean
- def nextEnclosing(sym: Global.Symbol): Global.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.
- final def nextEnclosingClass(sym: Global.Symbol): Global.Symbol
- Annotations
- @tailrec()
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def serialVUID(csym: Global.Symbol): Option[Long]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def traitSuperAccessorName(sym: Global.Symbol): String
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- 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.
- object isJavaEntryPoint
- object JCodeMethodN
- Definition Classes
- BCodeIdiomatic
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from BCodeHelpers toStringFormat[BCodeHelpers] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (BCodeHelpers, B)
- Implicit
- This member is added by an implicit conversion from BCodeHelpers toArrowAssoc[BCodeHelpers] 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.
The Scala compiler and reflection APIs.