From f430222343e18fec9f97c9b9fdfdc17667b94505 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sat, 5 Mar 2016 21:49:35 +0800 Subject: Parse - Starting on run-fail --- src/parse/expr.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp index 2f723ef9..a57cf487 100644 --- a/src/parse/expr.cpp +++ b/src/parse/expr.cpp @@ -939,8 +939,16 @@ ExprNodeP Parse_ExprVal_Closure(TokenStream& lex, bool is_move) CHECK_TOK(tok, TOK_PIPE); TypeRef rt; - if( GET_TOK(tok, lex) == TOK_THINARROW ) - rt = Parse_Type(lex); + if( GET_TOK(tok, lex) == TOK_THINARROW ) { + + if( GET_TOK(tok, lex) == TOK_EXCLAM ) { + rt = TypeRef(TypeRef::TagInvalid()); + } + else { + lex.putback(tok); + rt = Parse_Type(lex); + } + } else lex.putback(tok); -- cgit v1.2.3