summaryrefslogtreecommitdiff
path: root/src/parse/expr.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-10-08 19:23:37 +0800
committerJohn Hodge <tpg@mutabah.net>2016-10-08 19:23:37 +0800
commitf97bfa4b393522b6eb1541f708aebbb4ee211e0c (patch)
tree0edf58be2eb7b1351a5eb647619c526b43feac99 /src/parse/expr.cpp
parentd1353b232384e1ec40b469ab025b5ec0fb961a79 (diff)
downloadmrust-f97bfa4b393522b6eb1541f708aebbb4ee211e0c.tar.gz
Parse - Handle #! at the end of a block, allow pub items in blocks
Diffstat (limited to 'src/parse/expr.cpp')
-rw-r--r--src/parse/expr.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp
index a01bc26b..8053b4ab 100644
--- a/src/parse/expr.cpp
+++ b/src/parse/expr.cpp
@@ -71,6 +71,8 @@ ExprNodeP Parse_ExprBlockNode(TokenStream& lex, bool is_unsafe/*=false*/)
GET_CHECK_TOK(tok, lex, TOK_SQUARE_CLOSE);
}
PUTBACK(tok, lex);
+ if( LOOK_AHEAD(lex) == TOK_BRACE_CLOSE )
+ break;
bool add_silence_if_end = false;
auto rv = Parse_ExprBlockLine_WithItems(lex, local_mod, add_silence_if_end);
@@ -112,7 +114,7 @@ ExprNodeP Parse_ExprBlockLine_WithItems(TokenStream& lex, ::std::shared_ptr<AST:
{
// Items:
case TOK_RWORD_PUB:
- ERROR(lex.getPosition(), E0000, "`pub` is useless within expression modules");
+ // NOTE: Allowed, but doesn't do much
case TOK_RWORD_TYPE:
case TOK_RWORD_USE:
case TOK_RWORD_EXTERN: