cprover
Loading...
Searching...
No Matches
java_class_typet Class Reference

#include <java_types.h>

Inheritance diagram for java_class_typet:
Collaboration diagram for java_class_typet:

Classes

class  componentt
class  java_lambda_method_handlet
 Represents a lambda call to a method. More...
class  methodt

Public Types

enum class  method_handle_kindt { LAMBDA_STATIC_METHOD_HANDLE , LAMBDA_VIRTUAL_METHOD_HANDLE , LAMBDA_CONSTRUCTOR_HANDLE , UNKNOWN_HANDLE }
 Indicates what sort of code should be synthesised for a lambda call: More...
using componentst = std::vector<componentt>
using methodst = std::vector<methodt>
using static_membert = componentt
using static_memberst = std::vector<componentt>
using java_lambda_method_handlest = std::vector<java_lambda_method_handlet>
Public Types inherited from class_typet
typedef componentt methodt
typedef componentst methodst
using static_membert = componentt
using static_memberst = componentst
Public Types inherited from struct_typet
typedef std::vector< basetbasest
Public Types inherited from struct_union_typet
typedef std::vector< componenttcomponentst
Public Types inherited from irept
using baset = tree_implementationt
Public Types inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
using dt
using subt
using named_subt
using tree_implementationt
 Used to refer to this class from derived classes.

Public Member Functions

const componentstcomponents () const
componentstcomponents ()
const componenttget_component (const irep_idt &component_name) const
const methodstmethods () const
methodstmethods ()
const static_memberststatic_members () const
static_memberststatic_members ()
const irep_idtget_access () const
void set_access (const irep_idt &access)
bool get_is_inner_class () const
void set_is_inner_class (const bool &is_inner_class)
const irep_idtget_outer_class () const
void set_outer_class (const irep_idt &outer_class)
const irep_idtget_super_class () const
void set_super_class (const irep_idt &super_class)
bool get_is_static_class () const
void set_is_static_class (const bool &is_static_class)
bool get_is_anonymous_class () const
void set_is_anonymous_class (const bool &is_anonymous_class)
bool get_final () const
void set_final (bool is_final)
void set_is_stub (bool is_stub)
bool get_is_stub () const
bool get_is_enumeration () const
 is class an enumeration?
void set_is_enumeration (const bool is_enumeration)
 marks class as an enumeration
bool get_abstract () const
 is class abstract?
void set_abstract (bool abstract)
 marks class abstract
bool get_synthetic () const
 is class synthetic?
void set_synthetic (bool synthetic)
 marks class synthetic
bool get_is_annotation () const
 is class an annotation?
void set_is_annotation (bool is_annotation)
 marks class an annotation
bool get_interface () const
 is class an interface?
void set_interface (bool interface)
 marks class an interface
const java_lambda_method_handlestlambda_method_handles () const
java_lambda_method_handlestlambda_method_handles ()
void add_lambda_method_handle (const class_method_descriptor_exprt &method_descriptor, method_handle_kindt handle_kind)
void add_unknown_lambda_method_handle ()
const std::vector< java_annotationt > & get_annotations () const
std::vector< java_annotationt > & get_annotations ()
const irep_idtget_name () const
 Get the name of the struct, which can be used to look up its symbol in the symbol table.
void set_name (const irep_idt &name)
 Set the name of the struct, which can be used to look up its symbol in the symbol table.
const irep_idtget_inner_name () const
 Get the name of a java inner class.
void set_inner_name (const irep_idt &name)
 Set the name of a java inner class.
Public Member Functions inherited from class_typet
 class_typet ()
const methodstmethods () const
methodstmethods ()
const static_memberststatic_members () const
static_memberststatic_members ()
bool is_abstract () const
Public Member Functions inherited from struct_typet
 struct_typet ()
 struct_typet (componentst _components)
bool is_prefix_of (const struct_typet &other) const
 Returns true if the struct is a prefix of other, i.e., if this struct has n components then the component types and names of this struct must match the first n components of other struct.
bool is_class () const
 A struct may be a class, where members may have access restrictions.
const basestbases () const
 Get the collection of base classes/structs.
basestbases ()
 Get the collection of base classes/structs.
void add_base (const struct_tag_typet &base)
 Add a base class/struct.
std::optional< basetget_base (const irep_idt &id) const
 Return the base with the given name, if exists.
bool has_base (const irep_idt &id) const
 Test whether id is a base class/struct.
Public Member Functions inherited from struct_union_typet
 struct_union_typet (const irep_idt &_id)
 struct_union_typet (const irep_idt &_id, componentst _components)
const componentstcomponents () const
componentstcomponents ()
bool has_component (const irep_idt &component_name) const
const componenttget_component (const irep_idt &component_name) const
 Get the reference to a component with given name.
std::size_t component_number (const irep_idt &component_name) const
 Return the sequence number of the component with given name.
const typetcomponent_type (const irep_idt &component_name) const
irep_idt get_tag () const
void set_tag (const irep_idt &tag)
bool is_class () const
 A struct may be a class, where members may have access restrictions.
irep_idt default_access () const
 Return the access specification for members where access has not been modified.
bool is_incomplete () const
 A struct/union may be incomplete.
void make_incomplete ()
 A struct/union may be incomplete.
Public Member Functions inherited from typet
 typet ()
 typet (const irep_idt &_id)
 typet (irep_idt _id, typet _subtype)
typetadd_subtype ()
bool has_subtypes () const
bool has_subtype () const
void remove_subtype ()
const source_locationtsource_location () const
source_locationtadd_source_location ()
typet && with_source_location (source_locationt location) &&
 This is a 'fluent style' method for creating a new type with an added-on source location.
typetwith_source_location (source_locationt location) &
 This is a 'fluent style' method for adding a source location.
typet && with_source_location (const typet &type) &&
 This is a 'fluent style' method for creating a new type with an added-on source location.
typetwith_source_location (const typet &type) &
 This is a 'fluent style' method for adding a source location.
typetadd_type (const irep_idt &name)
const typetfind_type (const irep_idt &name) const
Public Member Functions inherited from irept
bool is_nil () const
bool is_not_nil () const
 irept (const irep_idt &_id)
 irept (const irep_idt &_id, const named_subt &_named_sub, const subt &_sub)
 irept ()=default
const irep_idtid () const
const std::string & id_string () const
void id (const irep_idt &_data)
const ireptfind (const irep_idt &name) const
ireptadd (const irep_idt &name)
ireptadd (const irep_idt &name, irept irep)
const std::string & get_string (const irep_idt &name) const
const irep_idtget (const irep_idt &name) const
bool get_bool (const irep_idt &name) const
signed int get_int (const irep_idt &name) const
std::size_t get_size_t (const irep_idt &name) const
long long get_long_long (const irep_idt &name) const
void set (const irep_idt &name, const irep_idt &value)
void set (const irep_idt &name, irept irep)
void set (const irep_idt &name, const long long value)
void set_size_t (const irep_idt &name, const std::size_t value)
void remove (const irep_idt &name)
void move_to_sub (irept &irep)
void move_to_named_sub (const irep_idt &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
bool ordering (const irept &other) const
 defines ordering on the internal representation
int compare (const irept &i) const
 defines ordering on the internal representation comments are ignored
void clear ()
void make_nil ()
subtget_sub ()
const subtget_sub () const
named_subtget_named_sub ()
const named_subtget_named_sub () 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
Public Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
 sharing_treet (irep_idt _id)
sharing_treetoperator= (const sharing_treet &irep)
 ~sharing_treet ()
const dtread () const
dtwrite ()

Additional Inherited Members

Static Public Member Functions inherited from typet
static void check (const typet &, const validation_modet=validation_modet::INVARIANT)
 Check that the type is well-formed (shallow checks only, i.e., subtypes are not checked)
static void validate (const typet &type, const namespacet &, const validation_modet vm=validation_modet::INVARIANT)
 Check that the type is well-formed, assuming that its subtypes have already been checked for well-formedness.
static void validate_full (const typet &type, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT)
 Check that the type is well-formed (full check, including checks of subtypes)
Static Public Member Functions inherited from irept
static bool is_comment (const irep_idt &name)
static std::size_t number_of_non_comments (const named_subt &)
 count the number of named_sub elements that are not comments
Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
void detach ()
Static Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
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.
Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
dtdata
Static Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
static dt empty_d

Detailed Description

Definition at line 195 of file java_types.h.

Member Typedef Documentation

◆ componentst

Definition at line 221 of file java_types.h.

◆ java_lambda_method_handlest

◆ methodst

using java_class_typet::methodst = std::vector<methodt>

Definition at line 297 of file java_types.h.

◆ static_memberst

Definition at line 310 of file java_types.h.

◆ static_membert

Definition at line 309 of file java_types.h.

Member Enumeration Documentation

◆ method_handle_kindt

Indicates what sort of code should be synthesised for a lambda call:

Enumerator
LAMBDA_STATIC_METHOD_HANDLE 

Direct call to the given method.

LAMBDA_VIRTUAL_METHOD_HANDLE 

Virtual call to the given interface or method.

LAMBDA_CONSTRUCTOR_HANDLE 

Instantiate the needed type then call a constructor.

UNKNOWN_HANDLE 

Can't be called.

Definition at line 463 of file java_types.h.

Member Function Documentation

◆ add_lambda_method_handle()

void java_class_typet::add_lambda_method_handle ( const class_method_descriptor_exprt & method_descriptor,
method_handle_kindt handle_kind )
inline

Definition at line 529 of file java_types.h.

◆ add_unknown_lambda_method_handle()

void java_class_typet::add_unknown_lambda_method_handle ( )
inline

Definition at line 536 of file java_types.h.

◆ components() [1/2]

componentst & java_class_typet::components ( )
inline

Definition at line 228 of file java_types.h.

◆ components() [2/2]

const componentst & java_class_typet::components ( ) const
inline

Definition at line 223 of file java_types.h.

◆ get_abstract()

bool java_class_typet::get_abstract ( ) const
inline

is class abstract?

Definition at line 415 of file java_types.h.

◆ get_access()

const irep_idt & java_class_typet::get_access ( ) const
inline

Definition at line 322 of file java_types.h.

◆ get_annotations() [1/2]

std::vector< java_annotationt > & java_class_typet::get_annotations ( )
inline

Definition at line 548 of file java_types.h.

◆ get_annotations() [2/2]

const std::vector< java_annotationt > & java_class_typet::get_annotations ( ) const
inline

Definition at line 542 of file java_types.h.

◆ get_component()

const componentt & java_class_typet::get_component ( const irep_idt & component_name) const
inline

Definition at line 233 of file java_types.h.

◆ get_final()

bool java_class_typet::get_final ( ) const
inline

Definition at line 382 of file java_types.h.

◆ get_inner_name()

const irep_idt & java_class_typet::get_inner_name ( ) const
inline

Get the name of a java inner class.

Definition at line 569 of file java_types.h.

◆ get_interface()

bool java_class_typet::get_interface ( ) const
inline

is class an interface?

Definition at line 451 of file java_types.h.

◆ get_is_annotation()

bool java_class_typet::get_is_annotation ( ) const
inline

is class an annotation?

Definition at line 439 of file java_types.h.

◆ get_is_anonymous_class()

bool java_class_typet::get_is_anonymous_class ( ) const
inline

Definition at line 372 of file java_types.h.

◆ get_is_enumeration()

bool java_class_typet::get_is_enumeration ( ) const
inline

is class an enumeration?

Definition at line 403 of file java_types.h.

◆ get_is_inner_class()

bool java_class_typet::get_is_inner_class ( ) const
inline

Definition at line 332 of file java_types.h.

◆ get_is_static_class()

bool java_class_typet::get_is_static_class ( ) const
inline

Definition at line 362 of file java_types.h.

◆ get_is_stub()

bool java_class_typet::get_is_stub ( ) const
inline

Definition at line 397 of file java_types.h.

◆ get_name()

const irep_idt & java_class_typet::get_name ( ) const
inline

Get the name of the struct, which can be used to look up its symbol in the symbol table.

Definition at line 556 of file java_types.h.

◆ get_outer_class()

const irep_idt & java_class_typet::get_outer_class ( ) const
inline

Definition at line 342 of file java_types.h.

◆ get_super_class()

const irep_idt & java_class_typet::get_super_class ( ) const
inline

Definition at line 352 of file java_types.h.

◆ get_synthetic()

bool java_class_typet::get_synthetic ( ) const
inline

is class synthetic?

Definition at line 427 of file java_types.h.

◆ lambda_method_handles() [1/2]

java_lambda_method_handlest & java_class_typet::lambda_method_handles ( )
inline

Definition at line 523 of file java_types.h.

◆ lambda_method_handles() [2/2]

const java_lambda_method_handlest & java_class_typet::lambda_method_handles ( ) const
inline

Definition at line 516 of file java_types.h.

◆ methods() [1/2]

methodst & java_class_typet::methods ( )
inline

Definition at line 304 of file java_types.h.

◆ methods() [2/2]

const methodst & java_class_typet::methods ( ) const
inline

Definition at line 299 of file java_types.h.

◆ set_abstract()

void java_class_typet::set_abstract ( bool abstract)
inline

marks class abstract

Definition at line 421 of file java_types.h.

◆ set_access()

void java_class_typet::set_access ( const irep_idt & access)
inline

Definition at line 327 of file java_types.h.

◆ set_final()

void java_class_typet::set_final ( bool is_final)
inline

Definition at line 387 of file java_types.h.

◆ set_inner_name()

void java_class_typet::set_inner_name ( const irep_idt & name)
inline

Set the name of a java inner class.

Definition at line 575 of file java_types.h.

◆ set_interface()

void java_class_typet::set_interface ( bool interface)
inline

marks class an interface

Definition at line 457 of file java_types.h.

◆ set_is_annotation()

void java_class_typet::set_is_annotation ( bool is_annotation)
inline

marks class an annotation

Definition at line 445 of file java_types.h.

◆ set_is_anonymous_class()

void java_class_typet::set_is_anonymous_class ( const bool & is_anonymous_class)
inline

Definition at line 377 of file java_types.h.

◆ set_is_enumeration()

void java_class_typet::set_is_enumeration ( const bool is_enumeration)
inline

marks class as an enumeration

Definition at line 409 of file java_types.h.

◆ set_is_inner_class()

void java_class_typet::set_is_inner_class ( const bool & is_inner_class)
inline

Definition at line 337 of file java_types.h.

◆ set_is_static_class()

void java_class_typet::set_is_static_class ( const bool & is_static_class)
inline

Definition at line 367 of file java_types.h.

◆ set_is_stub()

void java_class_typet::set_is_stub ( bool is_stub)
inline

Definition at line 392 of file java_types.h.

◆ set_name()

void java_class_typet::set_name ( const irep_idt & name)
inline

Set the name of the struct, which can be used to look up its symbol in the symbol table.

Definition at line 563 of file java_types.h.

◆ set_outer_class()

void java_class_typet::set_outer_class ( const irep_idt & outer_class)
inline

Definition at line 347 of file java_types.h.

◆ set_super_class()

void java_class_typet::set_super_class ( const irep_idt & super_class)
inline

Definition at line 357 of file java_types.h.

◆ set_synthetic()

void java_class_typet::set_synthetic ( bool synthetic)
inline

marks class synthetic

Definition at line 433 of file java_types.h.

◆ static_members() [1/2]

static_memberst & java_class_typet::static_members ( )
inline

Definition at line 317 of file java_types.h.

◆ static_members() [2/2]

const static_memberst & java_class_typet::static_members ( ) const
inline

Definition at line 312 of file java_types.h.


The documentation for this class was generated from the following file:
  • /builddir/build/BUILD/cbmc-6.7.0-build/cbmc-cbmc-6.7.0/jbmc/src/java_bytecode/java_types.h