|
cprover
|
Class to hold type with generic type arguments, for example java.util.List in either a reference of type List<Integer> or List<T> (here T must have been concretized already to create this object so technically it is an argument rather than parameter/variable, but in the symbol table this still shows as the parameter T).
More...
#include <java_types.h>
Public Types | |
| typedef std::vector< reference_typet > | generic_type_argumentst |
Public Types inherited from typet | |
| typedef std::vector< typet > | subtypest |
Public Types inherited from irept | |
| typedef std::vector< irept > | subt |
| typedef std::map< irep_namet, irept > | named_subt |
Public Member Functions | |
| java_generic_typet (const typet &_type) | |
| const generic_type_argumentst & | generic_type_arguments () const |
| generic_type_argumentst & | generic_type_arguments () |
Public Member Functions inherited from reference_typet | |
| reference_typet (const typet &_subtype, std::size_t _width) | |
Public Member Functions inherited from pointer_typet | |
| pointer_typet (const typet &_subtype, std::size_t width) | |
| signedbv_typet | difference_type () const |
Public Member Functions inherited from bitvector_typet | |
| bitvector_typet (const irep_idt &_id) | |
| bitvector_typet (const irep_idt &_id, const typet &_subtype) | |
| bitvector_typet (const irep_idt &_id, const typet &_subtype, std::size_t width) | |
| bitvector_typet (const irep_idt &_id, std::size_t width) | |
| std::size_t | get_width () const |
| void | set_width (std::size_t width) |
Public Member Functions inherited from type_with_subtypet | |
| type_with_subtypet () | |
| type_with_subtypet (const irep_idt &_id) | |
| type_with_subtypet (const irep_idt &_id, const typet &_subtype) | |
Public Member Functions inherited from typet | |
| typet () | |
| typet (const irep_idt &_id) | |
| typet (const irep_idt &_id, const typet &_subtype) | |
| const typet & | subtype () const |
| typet & | subtype () |
| subtypest & | subtypes () |
| const subtypest & | subtypes () const |
| bool | has_subtypes () const |
| bool | has_subtype () const |
| void | remove_subtype () |
| void | move_to_subtypes (typet &type) |
| void | copy_to_subtypes (const typet &type) |
| const source_locationt & | source_location () const |
| source_locationt & | add_source_location () |
| typet & | add_type (const irep_namet &name) |
| const typet & | find_type (const irep_namet &name) const |
Public Member Functions inherited from irept | |
| bool | is_nil () const |
| bool | is_not_nil () const |
| irept (const irep_idt &_id) | |
| irept () | |
| irept (const irept &irep) | |
| irept (irept &&irep) | |
| irept & | operator= (const irept &irep) |
| irept & | operator= (irept &&irep) |
| ~irept () | |
| const irep_idt & | id () const |
| const std::string & | id_string () const |
| void | id (const irep_idt &_data) |
| const irept & | find (const irep_namet &name) const |
| irept & | add (const irep_namet &name) |
| irept & | add (const irep_namet &name, const irept &irep) |
| const std::string & | get_string (const irep_namet &name) const |
| const irep_idt & | get (const irep_namet &name) const |
| bool | get_bool (const irep_namet &name) const |
| signed int | get_int (const irep_namet &name) const |
| unsigned int | get_unsigned_int (const irep_namet &name) const |
| std::size_t | get_size_t (const irep_namet &name) const |
| long long | get_long_long (const irep_namet &name) const |
| void | set (const irep_namet &name, const irep_idt &value) |
| void | set (const irep_namet &name, const irept &irep) |
| void | set (const irep_namet &name, const long long value) |
| void | remove (const irep_namet &name) |
| void | move_to_sub (irept &irep) |
| void | move_to_named_sub (const irep_namet &name, irept &irep) |
| bool | operator== (const irept &other) const |
| bool | operator!= (const irept &other) const |
| void | swap (irept &irep) |
| bool | operator< (const irept &other) const |
| defines ordering on the internal representation More... | |
| bool | ordering (const irept &other) const |
| defines ordering on the internal representation More... | |
| int | compare (const irept &i) const |
| defines ordering on the internal representation More... | |
| void | clear () |
| void | make_nil () |
| subt & | get_sub () |
| const subt & | get_sub () const |
| named_subt & | get_named_sub () |
| const named_subt & | get_named_sub () const |
| named_subt & | get_comments () |
| const named_subt & | get_comments () const |
| std::size_t | hash () const |
| std::size_t | full_hash () const |
| bool | full_eq (const irept &other) const |
| std::string | pretty (unsigned indent=0, unsigned max_indent=0) const |
| const dt & | read () const |
| dt & | write () |
Additional Inherited Members | |
Protected Member Functions inherited from irept | |
| void | detach () |
Static Protected Member Functions inherited from irept | |
| static bool | is_comment (const irep_namet &name) |
| static void | remove_ref (dt *old_data) |
| static void | nonrecursive_destructor (dt *old_data) |
| Does the same as remove_ref, but using an explicit stack instead of recursion. More... | |
Protected Attributes inherited from irept | |
| dt * | data |
Static Protected Attributes inherited from irept | |
| static dt | empty_d |
Class to hold type with generic type arguments, for example java.util.List in either a reference of type List<Integer> or List<T> (here T must have been concretized already to create this object so technically it is an argument rather than parameter/variable, but in the symbol table this still shows as the parameter T).
The vector holds the types of the type arguments (all of type or subtype of reference_typet), that is the vector has the length of the number of type parameters of the generic class. For example:
HashMap<K, V> it would contain two elements, each of type java_generic_parametert,HashMap<Integer, V> it would contain two elements, the first of type reference_typet and the second of type java_generic_parametert,HashMap<List<T>, V> it would contain two elements, the first of type java_generic_typet and the second of type java_generic_parametert. Definition at line 429 of file java_types.h.
| typedef std::vector<reference_typet> java_generic_typet::generic_type_argumentst |
Definition at line 432 of file java_types.h.
|
inlineexplicit |
Definition at line 434 of file java_types.h.
|
inline |
Definition at line 441 of file java_types.h.
References irept::find(), and irept::get_sub().
Referenced by add_generic_type_information(), ci_lazy_methods_neededt::initialize_instantiated_classes_from_pointer(), generic_parameter_specialization_map_keyst::insert_pairs_for_pointer(), java_generic_get_inst_type(), java_generic_symbol_typet::java_generic_symbol_typet(), and require_type::require_java_generic_type().
|
inline |
Definition at line 448 of file java_types.h.
References irept::add(), and irept::get_sub().