◆ annotationt
◆ classt
◆ fieldt
◆ methodt
◆ overlay_classest
◆ java_bytecode_convert_classt()
◆ add_array_types()
void java_bytecode_convert_classt::add_array_types |
( |
symbol_tablet & |
symbol_table | ) |
|
|
staticprivate |
Register in the symbol_table
new symbols for the objects java::array[X] where X is byte, float, int, char...
Definition at line 771 of file java_bytecode_convert_class.cpp.
◆ check_field_exists()
◆ convert() [1/2]
Convert a class, adding symbols to the symbol table for its members.
- Parameters
-
c | Bytecode of the class to convert |
overlay_classes | Bytecode of any overlays for the class to convert |
Definition at line 263 of file java_bytecode_convert_class.cpp.
◆ convert() [2/2]
void java_bytecode_convert_classt::convert |
( |
symbolt & |
class_symbol, |
|
|
const fieldt & |
f |
|
) |
| |
|
private |
Convert a field, adding a symbol to teh symbol table for it.
- Parameters
-
class_symbol | The already added symbol for the containing class |
f | The bytecode for the field to convert |
this is for a free type variable, e.g., a field of the form T f;
this is for a field that holds a generic type, either with instantiated or with free type variables, e.g., List<T> l;
or List<Integer> l;
Definition at line 632 of file java_bytecode_convert_class.cpp.
◆ is_ignored_method()
static bool java_bytecode_convert_classt::is_ignored_method |
( |
const methodt & |
method | ) |
|
|
inlinestaticprivate |
Check if a method is an ignored method by searching for ID_ignored_method
in its list of annotations.
An ignored method is a method with the annotation @IgnoredMethodImplementation. They will be ignored by JBMC. They are intended for use in overlay classes, in particular for methods which must exist in the overlay class so that it will compile, e.g. default constructors, but which we do not want to overlay the corresponding method in the underlying class. It is an error if a method in an overlay class has the same signature as a method in the underlying class and it isn't marked as an overlay method or an ignored method.
- Parameters
-
method | a methodt object from a java bytecode parse tree |
- Returns
- true if the method is an ignored method, else false
Definition at line 159 of file java_bytecode_convert_class.cpp.
◆ is_overlay_method()
static bool java_bytecode_convert_classt::is_overlay_method |
( |
const methodt & |
method | ) |
|
|
inlinestaticprivate |
Check if a method is an overlay method by searching for ID_overlay_method
in its list of annotations.
An overlay method is a method with the annotation @OverlayMethodImplementation. They should only appear in overlay classes. They will be loaded by JBMC instead of the method with the same signature in the underlying class. It is an error if there is no method with the same signature in the underlying class. It is an error if a method in an overlay class has the same signature as a method in the underlying class and it isn't marked as an overlay method or an ignored method.
- Parameters
-
method | a methodt object from a java bytecode parse tree |
- Returns
- true if the method is an overlay method, else false
Definition at line 136 of file java_bytecode_convert_class.cpp.
◆ operator()()
Converts all the class parse trees into a class symbol and adds it to the symbol table.
- Parameters
-
parse_trees | The parse trees found for the class to be converted. |
Definition at line 65 of file java_bytecode_convert_class.cpp.
◆ max_array_length
const size_t java_bytecode_convert_classt::max_array_length |
|
private |
◆ method_bytecode
◆ no_load_classes
std::unordered_set<std::string> java_bytecode_convert_classt::no_load_classes |
|
private |
◆ string_preprocess
◆ symbol_table
The documentation for this class was generated from the following file: