- Companion
- object
Type members
Classlikes
A completer for attributes
A completer for attributes
Top-level classes complete attributes eagerly, while members complete lazily.
- Note
We cannot simply store the bytes of attributes, as the bytes may contain references to the constant pool, where the constants are loaded lazily.
An entry in the InnerClasses attribute of this class file.
An entry in the InnerClasses attribute of this class file.
Value members
Concrete methods
Annotations in Scala are assumed to get all their arguments as constructor parameters. For Java annotations we need to fake it by making up the constructor.
Annotations in Scala are assumed to get all their arguments as constructor parameters. For Java annotations we need to fake it by making up the constructor.
As specified in https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.16.1,
an annotation argument of type boolean, byte, char or short will
be represented as a CONSTANT_INTEGER, so we need to convert it to
produce a correctly-typed tree. We need to do this each time the
constant is accessed instead of storing the result of the
conversion in the values
cache, because the same constant might
be used for annotation arguments of different type.
As specified in https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.16.1,
an annotation argument of type boolean, byte, char or short will
be represented as a CONSTANT_INTEGER, so we need to convert it to
produce a correctly-typed tree. We need to do this each time the
constant is accessed instead of storing the result of the
conversion in the values
cache, because the same constant might
be used for annotation arguments of different type.
Parse and return a single annotation. If it is malformed, return None.
Parse and return a single annotation. If it is malformed, return None.