abstract class ClassfileParser extends AnyRef
This abstract class implements a class file parser.
- Source
- ClassfileParser.scala
- Alphabetic
- By Inheritance
- ClassfileParser
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ClassfileParser(reader: ReusableInstance[ReusableDataReader])
Type Members
- class ConstantPool extends AnyRef
Constructor of this class should not be called directly, use
newConstantPool
instead.Constructor of this class should not be called directly, use
newConstantPool
instead.- Attributes
- protected
- case class InnerClassEntry(external: NameOrString, outer: NameOrString, name: NameOrString, jflags: JavaAccFlags) extends Product with Serializable
An entry in the InnerClasses attribute of this class file.
- class LazyAliasType extends (symbolTable)#LazyType with (symbolTable)#FlagAgnosticCompleter
- class NameOrString extends AnyRef
- Attributes
- protected
- class TypeParamsType extends (symbolTable)#LazyType with (symbolTable)#FlagAgnosticCompleter
Abstract Value Members
- abstract def classPath: ClassPath
The compiler classpath.
- abstract val loaders: SymbolLoaders { val symbolTable: ClassfileParser.this.symbolTable.type }
- abstract def lookupMemberAtTyperPhaseIfPossible(sym: (symbolTable)#Symbol, name: (symbolTable)#Name): (symbolTable)#Symbol
If typer phase is defined then perform member lookup of a symbol
sym
at typer phase.If typer phase is defined then perform member lookup of a symbol
sym
at typer phase. This method results from refactoring. The original author of the logic that uses typer phase didn't explain why we need to force infos at that phase specifically. It only mentioned that ClassfileParse can be called late (e.g. at flatten phase) and we make to make sure we handle such situation properly.- Attributes
- protected
- abstract val symbolTable: SymbolTable { def settings: scala.tools.nsc.Settings }
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 ClassfileParser toany2stringadd[ClassfileParser] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (ClassfileParser, B)
- Implicit
- This member is added by an implicit conversion from ClassfileParser toArrowAssoc[ClassfileParser] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val TASTYUUIDLength: Int
- Attributes
- protected
- def addEnclosingTParams(clazz: (symbolTable)#Symbol): Unit
Add type parameters of enclosing classes
- def addJavaFlagsAnnotations(sym: (symbolTable)#Symbol, flags: JavaAccFlags): Unit
Apply
@native
/@transient
/@volatile
annotations tosym
, if the corresponding flag is set inflags
. - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- var busy: (symbolTable)#Symbol
- Attributes
- protected
- def classNameToSymbol(name: String): (symbolTable)#Symbol
Return the class symbol of the given name.
- var classTParams: Map[(symbolTable)#Name, (symbolTable)#Symbol]
- Attributes
- protected
- var clazz: (symbolTable)#ClassSymbol
- Attributes
- protected
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- var currentClass: String
- Attributes
- protected
- def ensuring(cond: (ClassfileParser) => Boolean, msg: => Any): ClassfileParser
- Implicit
- This member is added by an implicit conversion from ClassfileParser toEnsuring[ClassfileParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (ClassfileParser) => Boolean): ClassfileParser
- Implicit
- This member is added by an implicit conversion from ClassfileParser toEnsuring[ClassfileParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): ClassfileParser
- Implicit
- This member is added by an implicit conversion from ClassfileParser toEnsuring[ClassfileParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): ClassfileParser
- Implicit
- This member is added by an implicit conversion from ClassfileParser toEnsuring[ClassfileParser] 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
- var file: AbstractFile
- Attributes
- protected
- 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 getClassSymbol(name: String): (symbolTable)#Symbol
- def getScope(flags: JavaAccFlags): (symbolTable)#Scope
- Attributes
- protected
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- var in: DataReader
- Attributes
- protected
- var instanceScope: (symbolTable)#Scope
- Attributes
- protected
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- var isScala: Boolean
- Attributes
- protected
- var isScalaRaw: Boolean
- Attributes
- protected
- var isTASTY: Boolean
- Attributes
- protected
- def moduleClass: (symbolTable)#Symbol
- Attributes
- protected
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def parse(file: AbstractFile, clazz: (symbolTable)#ClassSymbol, module: (symbolTable)#ModuleSymbol): Unit
clazz
andmodule
are the class and module symbols corresponding to the classfile being parsed.clazz
andmodule
are the class and module symbols corresponding to the classfile being parsed. Note that the ClassfileLoader unconditionally creates both of these symbols, they may may get invalidated later on (.exists).Note that using
companionModule
/companionClass
does not always work to navigate between those two symbols, namely when they are shadowed by a type / value in the a package object (scala-dev#248). - def parseAnnotArg(): Option[(symbolTable)#ClassfileAnnotArg]
- def parseAnnotation(attrNameIndex: Int): Option[(symbolTable)#AnnotationInfo]
Parse and return a single annotation.
Parse and return a single annotation. If it is malformed, return None.
- def parseClass(): Unit
- def parseField(): Unit
- def parseMethod(): Unit
- var pool: ConstantPool
- Attributes
- protected
- final def s1(): Int
- Attributes
- protected
- final def s2(): Int
- Attributes
- protected
- def skipAttributes(): Unit
- def skipMembers(): Unit
- def skipSuperclasses(): Unit
- def srcfile: Option[AbstractFile]
- var srcfile0: Option[AbstractFile]
- Attributes
- protected
- var staticModule: (symbolTable)#ModuleSymbol
- Attributes
- protected
- var staticScope: (symbolTable)#Scope
- Attributes
- protected
- def stubClassSymbol(name: (symbolTable)#Name): (symbolTable)#Symbol
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def u1(): Int
- Attributes
- protected
- final def u2(): Int
- Attributes
- protected
- final def u4(): Int
- Attributes
- protected
- def unpickleOrParseInnerClasses(): Unit
Either
Either
- set
isScala
and invoke the unpickler, or - set
isScalaRaw
, or - parse inner classes (for Java classfiles)
Expects
in.bp
to point to theaccess_flags
entry, restores the oldbp
. - set
- 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 TastyUniverse extends TastyUniverse
- object innerClasses
Return the class symbol for the given name.
Return the class symbol for the given name. It looks it up in its outer class. Forces all outer class symbols to be completed.
If the given name is not an inner class, it returns the symbol found in
definitions
.
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ClassfileParser toStringFormat[ClassfileParser] 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): (ClassfileParser, B)
- Implicit
- This member is added by an implicit conversion from ClassfileParser toArrowAssoc[ClassfileParser] 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.