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

#include <c_types.h>

Inheritance diagram for code_with_contract_typet:
Collaboration diagram for code_with_contract_typet:

Public Member Functions

 code_with_contract_typet (parameterst _parameters, typet _return_type)
 Constructs a new 'code with contract' type, i.e., a function type decorated with a function contract.
bool has_contract () const
const exprt::operandstc_assigns () const
exprt::operandstc_assigns ()
const exprt::operandstc_frees () const
exprt::operandstc_frees ()
const exprt::operandstc_requires () const
exprt::operandstc_requires ()
const exprt::operandstc_ensures () const
exprt::operandstc_ensures ()
Public Member Functions inherited from code_typet
 code_typet (parameterst _parameters, typet _return_type)
 Constructs a new code type, i.e., function type.
bool has_ellipsis () const
bool has_this () const
const parametertget_this () const
bool is_KnR () const
void make_ellipsis ()
void remove_ellipsis ()
const typetreturn_type () const
typetreturn_type ()
const parameterstparameters () const
parameterstparameters ()
bool get_inlined () const
void set_inlined (bool value)
const irep_idtget_access () const
void set_access (const irep_idt &access)
bool get_is_constructor () const
void set_is_constructor ()
std::vector< irep_idtparameter_identifiers () const
 Produces the list of parameter identifiers.
parameter_indicest parameter_indices () const
 Get a map from parameter name to its index.
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

Public Types inherited from code_typet
typedef std::vector< parametertparameterst
typedef std::unordered_map< irep_idt, std::size_t > parameter_indicest
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.
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 390 of file c_types.h.

Constructor & Destructor Documentation

◆ code_with_contract_typet()

code_with_contract_typet::code_with_contract_typet ( parameterst _parameters,
typet _return_type )
inline

Constructs a new 'code with contract' type, i.e., a function type decorated with a function contract.

Parameters
_parametersThe vector of function parameters.
_return_typeThe return type.

Definition at line 397 of file c_types.h.

Member Function Documentation

◆ c_assigns() [1/2]

exprt::operandst & code_with_contract_typet::c_assigns ( )
inline

Definition at line 413 of file c_types.h.

◆ c_assigns() [2/2]

const exprt::operandst & code_with_contract_typet::c_assigns ( ) const
inline

Definition at line 408 of file c_types.h.

◆ c_ensures() [1/2]

exprt::operandst & code_with_contract_typet::c_ensures ( )
inline

Definition at line 443 of file c_types.h.

◆ c_ensures() [2/2]

const exprt::operandst & code_with_contract_typet::c_ensures ( ) const
inline

Definition at line 438 of file c_types.h.

◆ c_frees() [1/2]

exprt::operandst & code_with_contract_typet::c_frees ( )
inline

Definition at line 423 of file c_types.h.

◆ c_frees() [2/2]

const exprt::operandst & code_with_contract_typet::c_frees ( ) const
inline

Definition at line 418 of file c_types.h.

◆ c_requires() [1/2]

exprt::operandst & code_with_contract_typet::c_requires ( )
inline

Definition at line 433 of file c_types.h.

◆ c_requires() [2/2]

const exprt::operandst & code_with_contract_typet::c_requires ( ) const
inline

Definition at line 428 of file c_types.h.

◆ has_contract()

bool code_with_contract_typet::has_contract ( ) const
inline

Definition at line 402 of file c_types.h.


The documentation for this class was generated from the following file: