39 const std::string &class_name_string =
id2string(class_symbol_name);
41 class_name_string +
".cproverNondetInitialize:()V");
91 const auto &generic_args =
93 for(
const auto &generic_arg : generic_args)
107 const typet &class_type,
115 if(class_type.
id() == ID_symbol)
117 const typet &element_type =
119 if(element_type.
id() == ID_pointer)
128 for(
const auto &field : underlying_type.components())
130 if(field.type().id() == ID_struct || field.type().id() == ID_symbol)
132 else if(field.type().id() == ID_pointer)
134 if(field.type().subtype().id() == ID_symbol)
146 field.type().subtype().id() != ID_struct,
147 "struct types should be referred to by symbol at this stage");
The type of an expression.
const std::string & id2string(const irep_idt &d)
pointer_typet pointer_type(const typet &subtype)
bool is_java_generic_parameter(const typet &type)
Checks whether the type is a java generic parameter/variable, e.g., T in List<T>. ...
symbol_tablet & symbol_table
const symbol_typet & to_symbol_type(const typet &type)
Cast a generic typet to a symbol_typet.
bool is_java_array_tag(const irep_idt &tag)
See above.
#define INVARIANT(CONDITION, REASON)
const select_pointer_typet & pointer_type_selector
const generic_type_argumentst & generic_type_arguments() const
const irep_idt & id() const
std::unordered_set< irep_idt > & instantiated_classes
A reference into the symbol table.
Collect methods needed to be loaded using the lazy method.
void add_needed_method(const irep_idt &)
Notes method_symbol_name is referenced from some reachable function, and should therefore be elaborat...
const typet & follow(const typet &) const
const struct_typet & to_struct_type(const typet &type)
Cast a generic typet to a struct_typet.
void initialize_instantiated_classes_from_pointer(const pointer_typet &pointer_type, const namespacet &ns)
Build up list of methods for types for a specific pointer type.
const java_generic_typet & to_java_generic_type(const typet &type)
void gather_field_types(const typet &class_type, const namespacet &ns)
For a given type, gather all fields referenced by that type.
bool add_needed_class(const irep_idt &)
Notes class class_symbol_name will be instantiated, or a static field belonging to it will be accesse...
typet java_array_element_type(const symbol_typet &array_type)
Return the type of the elements of a given java array type.
std::unordered_set< irep_idt > & callable_methods
void add_all_needed_classes(const pointer_typet &pointer_type)
Add to the needed classes all classes specified, the replacement type if it will be replaced...
bool is_java_generic_type(const typet &type)
const pointer_typet & to_pointer_type(const typet &type)
Cast a generic typet to a pointer_typet.
const typet & subtype() const
virtual pointer_typet convert_pointer_type(const pointer_typet &pointer_type, const generic_parameter_specialization_mapt &generic_parameter_specialization_map, const namespacet &ns) const
Select what type should be used for a given pointer type.
Handle selection of correct pointer type (for example changing abstract classes to concrete versions)...
const irep_idt & get_identifier() const