7 #include <hilti/ast/type.h> 8 #include <hilti/ast/types/tuple.h> 9 #include <hilti/ast/types/unknown.h> 29 Type
containerType()
const {
return _wildcard ? type::unknown : type::effectiveType(child<Type>(0)); }
35 auto isEqual(
const Type& other)
const {
return node::isEqual(
this, other); }
48 bool _wildcard =
false;
62 Map(Type key, Type value,
Meta m =
Meta()) :
TypeBase({std::move(key), std::move(value)}, std::move(m)) {}
65 Type keyType()
const {
return _wildcard ? type::unknown : type::effectiveType(child<Type>(0)); }
68 auto isEqual(
const Type& other)
const {
return node::isEqual(
this, other); }
70 Type
elementType()
const {
return _wildcard ? type::unknown : type::effectiveType(child<Type>(1)); }
80 bool operator==(
const Map& other)
const {
81 return keyType() == other.keyType() && elementType() == other.
elementType();
85 bool _wildcard =
false;
Type containerType() const
Definition: map.h:29
auto typeParameters() const
Definition: map.h:76
auto & childs() const
Definition: node.h:445
const Node none
Definition: node.cc:12
auto typeParameters() const
Definition: map.h:41
Type iteratorType(bool const_) const
Definition: map.h:72
auto isWildcard() const
Definition: map.h:74
Type elementType() const
Definition: map.h:70
bool isConstant() const
Definition: map.h:32
auto isEqual(const Type &other) const
Definition: map.h:68
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:83
auto isWildcard() const
Definition: map.h:39
Type dereferencedType() const
Definition: map.h:89
auto properties() const
Definition: map.h:43
auto & meta() const
Definition: node.h:449
auto isEqual(const Type &other) const
Definition: map.h:35
auto properties() const
Definition: map.h:78