ObsoleteUnsafeExternFn,
ObsoleteTraitFuncVisibility,
ObsoleteConstPointer,
- ObsoleteEmptyImpl,
ObsoleteLoopAsContinue,
ObsoleteEnumWildcard,
ObsoleteStructWildcard,
"instead of `&const Foo` or `@const Foo`, write `&Foo` or \
`@Foo`"
),
- ObsoleteEmptyImpl => (
- "empty implementation",
- "instead of `impl A;`, write `impl A {}`"
- ),
ObsoleteLoopAsContinue => (
"`loop` instead of `continue`",
"`loop` is now only used for loops and `continue` is used for \
};
let mut meths = ~[];
- let inner_attrs = if self.eat(&token::SEMI) {
- self.obsolete(self.last_span, ObsoleteEmptyImpl);
- None
- } else {
- self.expect(&token::LBRACE);
- let (inner_attrs, next) = self.parse_inner_attrs_and_next();
- let mut method_attrs = Some(next);
- while !self.eat(&token::RBRACE) {
- meths.push(self.parse_method(method_attrs));
- method_attrs = None;
- }
- Some(inner_attrs)
- };
+ self.expect(&token::LBRACE);
+ let (inner_attrs, next) = self.parse_inner_attrs_and_next();
+ let mut method_attrs = Some(next);
+ while !self.eat(&token::RBRACE) {
+ meths.push(self.parse_method(method_attrs));
+ method_attrs = None;
+ }
- (ident, ItemImpl(generics, opt_trait, ty, meths), inner_attrs)
+ (ident, ItemImpl(generics, opt_trait, ty, meths), Some(inner_attrs))
}
// parse a::B<~str,int>
--- /dev/null
+// Copyright 2013 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.
+
+impl Foo; //~ ERROR expected `{` but found `;`