cprover
|
#include <template_map.h>
Public Types | |
typedef std::map< irep_idt, typet > | type_mapt |
typedef std::map< irep_idt, exprt > | expr_mapt |
Public Member Functions | |
void | apply (exprt &dest) const |
void | apply (typet &dest) const |
void | swap (template_mapt &template_map) |
exprt | lookup (const irep_idt &identifier) const |
typet | lookup_type (const irep_idt &identifier) const |
exprt | lookup_expr (const irep_idt &identifier) const |
void | print (std::ostream &out) const |
void | clear () |
void | set (const template_parametert ¶meter, const exprt &value) |
void | build (const template_typet &template_type, const cpp_template_args_tct &template_args) |
void | build_unassigned (const template_typet &template_type) |
cpp_template_args_tct | build_template_args (const template_typet &template_type) const |
Public Attributes | |
type_mapt | type_map |
expr_mapt | expr_map |
Definition at line 23 of file template_map.h.
typedef std::map<irep_idt, exprt> template_mapt::expr_mapt |
Definition at line 28 of file template_map.h.
typedef std::map<irep_idt, typet> template_mapt::type_mapt |
Definition at line 27 of file template_map.h.
void template_mapt::apply | ( | exprt & | dest | ) | const |
Definition at line 68 of file template_map.cpp.
References expr_map, Forall_operands, irept::get(), irept::id(), and exprt::type().
Referenced by apply(), and cpp_typecheckt::instantiate_template().
void template_mapt::apply | ( | typet & | dest | ) | const |
Definition at line 16 of file template_map.cpp.
References irept::add(), apply(), Forall_irep, Forall_subtypes, irept::get(), irept::get_sub(), irept::id(), typet::subtype(), and type_map.
void template_mapt::build | ( | const template_typet & | template_type, |
const cpp_template_args_tct & | template_args | ||
) |
Definition at line 144 of file template_map.cpp.
References cpp_template_args_baset::arguments(), template_parametert::default_argument(), template_parametert::has_default_argument(), and template_typet::template_parameters().
Referenced by cpp_typecheckt::instantiate_template(), and cpp_typecheckt::typecheck_class_template_member().
cpp_template_args_tct template_mapt::build_template_args | ( | const template_typet & | template_type | ) | const |
Definition at line 242 of file template_map.cpp.
References cpp_template_args_baset::arguments(), irept::get(), irept::id(), lookup_expr(), lookup_type(), template_typet::template_parameters(), and exprt::type().
Referenced by cpp_typecheck_resolvet::disambiguate_template_classes(), and cpp_typecheck_resolvet::guess_function_template_args().
void template_mapt::build_unassigned | ( | const template_typet & | template_type | ) |
Definition at line 212 of file template_map.cpp.
References typet::add_source_location(), expr_map, irept::get(), irept::id(), irept::set(), exprt::source_location(), template_typet::template_parameters(), exprt::type(), and type_map.
Referenced by cpp_typecheck_resolvet::disambiguate_template_classes(), and cpp_typecheck_resolvet::guess_function_template_args().
|
inline |
Definition at line 47 of file template_map.h.
Definition at line 88 of file template_map.cpp.
References expr_map, get_nil_irep(), exprt::type(), and type_map.
Referenced by cpp_typecheck_resolvet::convert_template_parameter(), and cpp_typecheck_resolvet::filter_for_named_scopes().
Definition at line 120 of file template_map.cpp.
References expr_map, and get_nil_irep().
Referenced by build_template_args().
Definition at line 109 of file template_map.cpp.
References get_nil_irep(), and type_map.
Referenced by build_template_args().
void template_mapt::print | ( | std::ostream & | out | ) | const |
Definition at line 131 of file template_map.cpp.
References expr_map, and type_map.
Referenced by cpp_typecheck_resolvet::filter_for_named_scopes(), and cpp_typecheckt::instantiate_template().
void template_mapt::set | ( | const template_parametert & | parameter, |
const exprt & | value | ||
) |
Definition at line 186 of file template_map.cpp.
References expr_map, irept::get(), irept::id(), exprt::type(), and type_map.
Referenced by cpp_typecheckt::typecheck_template_args().
|
inline |
Definition at line 35 of file template_map.h.
References expr_map, and type_map.
Referenced by cpp_typecheckt::typecheck_method_bodies(), cpp_typecheckt::typecheck_template_args(), and cpp_saved_template_mapt::~cpp_saved_template_mapt().
expr_mapt template_mapt::expr_map |
Definition at line 30 of file template_map.h.
Referenced by apply(), build_unassigned(), clear(), cpp_typecheck_resolvet::guess_template_args(), lookup(), lookup_expr(), print(), set(), and swap().
type_mapt template_mapt::type_map |
Definition at line 29 of file template_map.h.
Referenced by apply(), build_unassigned(), clear(), cpp_typecheck_resolvet::guess_template_args(), lookup(), lookup_type(), print(), set(), and swap().