diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 685a6a34405e..0dd1c70cd936 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -3132,9 +3132,15 @@ class parser { } fn parse_use() -> view_item_ { - let ident = self.parse_ident(); - let metadata = self.parse_optional_meta(); - return view_item_use(ident, metadata, self.get_id()); + if self.look_ahead(1) == token::SEMI || + self.look_ahead(1) == token::LPAREN { + // Old-style "use"; i.e. what we now call "extern mod". + let ident = self.parse_ident(); + let metadata = self.parse_optional_meta(); + return view_item_use(ident, metadata, self.get_id()); + } + + return view_item_import(self.parse_view_paths()); } fn parse_view_path() -> @view_path { diff --git a/src/test/run-pass/new-import-syntax.rs b/src/test/run-pass/new-import-syntax.rs new file mode 100644 index 000000000000..2d77d7ad5698 --- /dev/null +++ b/src/test/run-pass/new-import-syntax.rs @@ -0,0 +1,6 @@ +use io::println; + +fn main() { + println("Hello world!"); +} +