}
}
- // Check for imports appearing after non-item statements.
- let mut found_non_item = false;
- for statement in &block.stmts {
- if let hir::StmtDecl(ref declaration, _) = statement.node {
- if let hir::DeclItem(i) = declaration.node {
- let i = self.ast_map.expect_item(i.id);
- match i.node {
- ItemExternCrate(_) | ItemUse(_) if found_non_item => {
- span_err!(self.session,
- i.span,
- E0154,
- "imports are not allowed after non-item statements");
- }
- _ => {}
- }
- } else {
- found_non_item = true
- }
- } else {
- found_non_item = true;
- }
- }
-
// Descend into the block.
intravisit::walk_block(self, block);
let bar = 5;
//~^ ERROR declaration of `bar` shadows an enum variant or unit-like struct in scope
use foo::bar;
- //~^ ERROR imports are not allowed after non-item statements
}
+++ /dev/null
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-mod bar {
- pub fn foo() -> bool { true }
-}
-
-fn main() {
- let foo = || false;
- use bar::foo;
- //~^ ERROR imports are not allowed after non-item statements
- assert_eq!(foo(), false);
-}
--- /dev/null
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+mod bar {
+ pub fn foo() -> bool { true }
+}
+
+fn main() {
+ let foo = || false;
+ use bar::foo;
+ assert_eq!(foo(), false);
+}