7 #include <hilti/ast/type.h> 8 #include <hilti/ast/types/unknown.h> 25 if ( treat_as_non_constant )
26 _state().flags -= type::Flag::Constant;
29 Type dereferencedType()
const {
30 if (
auto t =
childs()[0].tryAs<Type>() )
31 return type::effectiveType(*t);
36 bool operator==(
const StrongReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
39 auto isEqual(
const Type& other)
const {
return node::isEqual(
this, other); }
49 bool _wildcard =
false;
62 Type dereferencedType()
const {
63 if (
auto t =
childs()[0].tryAs<Type>() )
64 return type::effectiveType(*t);
69 bool operator==(
const WeakReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
72 auto isEqual(
const Type& other)
const {
return node::isEqual(
this, other); }
82 bool _wildcard =
false;
95 Type dereferencedType()
const {
96 if (
auto t =
childs()[0].tryAs<Type>() )
97 return type::effectiveType(*t);
102 bool operator==(
const ValueReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
105 auto isEqual(
const Type& other)
const {
return node::isEqual(
this, other); }
115 bool _wildcard =
false;
auto & childs() const
Definition: node.h:445
auto isWildcard() const
Definition: reference.h:109
const Node none
Definition: node.cc:12
auto typeParameters() const
Definition: reference.h:107
auto isEqual(const Type &other) const
Definition: reference.h:39
auto properties() const
Definition: reference.h:46
Definition: reference.h:16
auto isEqual(const Type &other) const
Definition: reference.h:105
Definition: reference.h:86
const type::detail::State & _state() const
Definition: type.h:167
auto properties() const
Definition: reference.h:79
auto typeParameters() const
Definition: reference.h:74
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:83
auto typeParameters() const
Definition: reference.h:41
auto isWildcard() const
Definition: reference.h:76
Definition: reference.h:53
auto isWildcard() const
Definition: reference.h:43
auto properties() const
Definition: reference.h:112
auto isEqual(const Type &other) const
Definition: reference.h:72