diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-07-03 16:06:09 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-07-03 17:03:52 -0700 |
| commit | 0f5eaef5fb2443acd3ea67250c953839c3d04d38 (patch) | |
| tree | 3f22009e8299aca3a0814a2ed9eaa8180248f03f /src/libsyntax | |
| parent | 3f59a4bc64f46c5f44621327c697c5314b2f4358 (diff) | |
| download | rust-0f5eaef5fb2443acd3ea67250c953839c3d04d38.tar.gz rust-0f5eaef5fb2443acd3ea67250c953839c3d04d38.zip | |
Remove rule requiring non-nil block-style statements to be semi-terminated
This is a subtle rule that no longer seems to be required.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/ast_util.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/ext/auto_serialize.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/parse/classify.rs | 3 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 1 |
8 files changed, 5 insertions, 18 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 9419b9f647e..6c0b5a2e8b1 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -243,12 +243,7 @@ type stmt = spanned<stmt_>; #[auto_serialize] enum stmt_ { stmt_decl(@decl, node_id), - - // expr without trailing semi-colon (must have unit type): stmt_expr(@expr, node_id), - - // expr with trailing semi-colon (may have any type): - stmt_semi(@expr, node_id), } #[auto_serialize] diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index c6fb9349ad5..568f00b0dfb 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -38,7 +38,6 @@ pure fn stmt_id(s: stmt) -> node_id { alt s.node { stmt_decl(_, id) { id } stmt_expr(_, id) { id } - stmt_semi(_, id) { id } } } diff --git a/src/libsyntax/ext/auto_serialize.rs b/src/libsyntax/ext/auto_serialize.rs index d2d685f8f7d..8685bce4c1b 100644 --- a/src/libsyntax/ext/auto_serialize.rs +++ b/src/libsyntax/ext/auto_serialize.rs @@ -206,7 +206,7 @@ impl helpers for ext_ctxt { } fn stmt(expr: @ast::expr) -> @ast::stmt { - @{node: ast::stmt_semi(expr, self.next_id()), + @{node: ast::stmt_expr(expr, self.next_id()), span: expr.span} } diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index c949c2e17aa..fd17403b695 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -315,7 +315,6 @@ fn noop_fold_stmt(s: stmt_, fld: ast_fold) -> stmt_ { ret alt s { stmt_decl(d, nid) { stmt_decl(fld.fold_decl(d), fld.new_id(nid)) } stmt_expr(e, nid) { stmt_expr(fld.fold_expr(e), fld.new_id(nid)) } - stmt_semi(e, nid) { stmt_semi(fld.fold_expr(e), fld.new_id(nid)) } }; } diff --git a/src/libsyntax/parse/classify.rs b/src/libsyntax/parse/classify.rs index 9b36b77407e..4fcb761fa06 100644 --- a/src/libsyntax/parse/classify.rs +++ b/src/libsyntax/parse/classify.rs @@ -27,9 +27,6 @@ fn stmt_ends_with_semi(stmt: ast::stmt) -> bool { ast::stmt_expr(e, _) { ret expr_requires_semi_to_be_stmt(e); } - ast::stmt_semi(e, _) { - ret false; - } } } diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 747ca07bee5..97185b6dfb9 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1848,7 +1848,7 @@ class parser { token::SEMI { self.bump(); push(stmts, - @{node: stmt_semi(e, stmt_id) with *stmt}); + @{node: stmt_expr(e, stmt_id) with *stmt}); } token::RBRACE { expr = some(e); diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 5f2aada9fc6..171ad240635 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -682,11 +682,9 @@ fn print_stmt(s: ps, st: ast::stmt) { ast::stmt_expr(expr, _) { space_if_not_bol(s); print_expr(s, expr); - } - ast::stmt_semi(expr, _) { - space_if_not_bol(s); - print_expr(s, expr); - word(s.s, ";"); + if expr_requires_semi_to_be_stmt(expr) { + word(s.s, ";"); + } } } if parse::classify::stmt_ends_with_semi(st) { word(s.s, ";"); } diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 48f2e57de1c..d2e5b1d1f21 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -320,7 +320,6 @@ fn visit_stmt<E>(s: @stmt, e: E, v: vt<E>) { alt s.node { stmt_decl(d, _) { v.visit_decl(d, e, v); } stmt_expr(ex, _) { v.visit_expr(ex, e, v); } - stmt_semi(ex, _) { v.visit_expr(ex, e, v); } } } |
