summaryrefslogtreecommitdiff
path: root/src/ast/types.hpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-19 22:08:24 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-19 22:08:24 +0800
commitc805e9e03db7e7b48f04824ccf5e625a20032af9 (patch)
treebf27192754ffa315a522391abe91378801e47ca5 /src/ast/types.hpp
parent0ad915eb4919e8bdb036015f221b57c7f3de912c (diff)
downloadmrust-c805e9e03db7e7b48f04824ccf5e625a20032af9.tar.gz
AST - Support ! as a real type
Diffstat (limited to 'src/ast/types.hpp')
-rw-r--r--src/ast/types.hpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ast/types.hpp b/src/ast/types.hpp
index 8fbd6c37..1710fceb 100644
--- a/src/ast/types.hpp
+++ b/src/ast/types.hpp
@@ -61,6 +61,7 @@ struct Type_Function:
TAGGED_UNION(TypeData, None,
(None, struct { }),
(Any, struct { }),
+ (Bang, struct { }),
(Unit, struct { }),
(Macro, struct {
::AST::MacroInvocation inv;
@@ -126,9 +127,13 @@ public:
return *this;
}
- TypeRef(Span sp=Span()):
+ TypeRef(Span sp = Span()):
m_span( mv$(sp) ),
- m_data(TypeData::make_Any({}))
+ m_data( TypeData::make_Any({}) )
+ {}
+ TypeRef(Span sp, TypeData data):
+ m_span( mv$(sp) ),
+ m_data( mv$(data) )
{}
struct TagInvalid {};
@@ -136,7 +141,7 @@ public:
m_span(mv$(sp)),
m_data(TypeData::make_None({}))
{}
-
+
struct TagMacro {};
TypeRef(TagMacro, ::AST::MacroInvocation inv):
m_span(inv.span()),