diff options
-rw-r--r-- | src/parse/root.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/parse/root.cpp b/src/parse/root.cpp index 1ab010bd..2c559d84 100644 --- a/src/parse/root.cpp +++ b/src/parse/root.cpp @@ -545,9 +545,9 @@ AST::Enum Parse_EnumDef(TokenStream& lex, const ::std::vector<AST::MetaItem> met {
CHECK_TOK(tok, TOK_IDENT);
::std::string name = tok.str();
- ::std::vector<TypeRef> types;
if( GET_TOK(tok, lex) == TOK_PAREN_OPEN )
{
+ ::std::vector<TypeRef> types;
// Get type list
// TODO: Handle 'Variant()'?
do
@@ -556,9 +556,13 @@ AST::Enum Parse_EnumDef(TokenStream& lex, const ::std::vector<AST::MetaItem> met } while( GET_TOK(tok, lex) == TOK_COMMA );
CHECK_TOK(tok, TOK_PAREN_CLOSE);
GET_TOK(tok, lex);
+ variants.push_back( AST::StructItem(::std::move(name), TypeRef(TypeRef::TagTuple(), ::std::move(types))) );
+ }
+ else
+ {
+ variants.push_back( AST::StructItem(::std::move(name), TypeRef(TypeRef::TagUnit())) );
}
- variants.push_back( AST::StructItem(::std::move(name), TypeRef(TypeRef::TagTuple(), ::std::move(types))) );
if( tok.type() != TOK_COMMA )
break;
}
|