abstract class ClassfileParser extends AnyRef
This abstract class implements a class file parser.
- Source
- ClassfileParser.scala
- Version
1.0
- Alphabetic
- By Inheritance
- ClassfileParser
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
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: scala.tools.nsc.symtab.classfile.ClassfileParser.<refinement>.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 to any2stringadd[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 to ArrowAssoc[ClassfileParser] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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( ... ) @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 to Ensuring[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 to Ensuring[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 to Ensuring[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 to Ensuring[ClassfileParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): 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[_]
- 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
-
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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
→[B](y: B): (ClassfileParser, B)
- Implicit
- This member is added by an implicit conversion from ClassfileParser to ArrowAssoc[ClassfileParser] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
-
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 to StringFormat[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.
The Scala compiler and reflection APIs.