diff options
| author | bors <bors@rust-lang.org> | 2015-03-12 20:13:23 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-03-12 20:13:23 +0000 |
| commit | c9b03c24ec346e6405883032094f47805ef9c43e (patch) | |
| tree | cbb2bb6a0cd2a2e65b2cacd87d31bd8737f02e7d /src/test/parse-fail | |
| parent | 538840bc2d1b634a2a34b2c8bd72d99894058b66 (diff) | |
| parent | 9da918548d77182ca64f375fb6da24036d5ad60c (diff) | |
| download | rust-c9b03c24ec346e6405883032094f47805ef9c43e.tar.gz rust-c9b03c24ec346e6405883032094f47805ef9c43e.zip | |
Auto merge of #23265 - eddyb:meth-ast-refactor, r=nikomatsakis
The end result is that common fields (id, name, attributes, etc.) are stored in now-structures `ImplItem` and `TraitItem`. The signature of a method is no longer duplicated between methods with a body (default/impl) and those without, they now share `MethodSig`. This is also a [breaking-change] because of minor bugfixes and changes to syntax extensions: * `pub fn` methods in a trait no longer parse - remove the `pub`, it has no meaning anymore * `MacResult::make_methods` is now `make_impl_items` and the return type has changed accordingly * `quote_method` is gone, because `P<ast::Method>` doesn't exist and it couldn't represent a full method anyways - could be replaced by `quote_impl_item`/`quote_trait_item` in the future, but I do hope we realize how silly that combinatorial macro expansion is and settle on a single `quote` macro + some type hints - or just no types at all (only token-trees) r? @nikomatsakis This is necessary (hopefully also sufficient) for associated constants.
Diffstat (limited to 'src/test/parse-fail')
| -rw-r--r-- | src/test/parse-fail/issue-21153.rs | 2 | ||||
| -rw-r--r-- | src/test/parse-fail/trait-pub-assoc-ty.rs | 15 | ||||
| -rw-r--r-- | src/test/parse-fail/trait-pub-method.rs | 15 |
3 files changed, 31 insertions, 1 deletions
diff --git a/src/test/parse-fail/issue-21153.rs b/src/test/parse-fail/issue-21153.rs index e2b6deb0ad9..6496ffebbc8 100644 --- a/src/test/parse-fail/issue-21153.rs +++ b/src/test/parse-fail/issue-21153.rs @@ -9,5 +9,5 @@ // except according to those terms. trait MyTrait<T>: Iterator { - Item = T; //~ ERROR expected one of `extern`, `fn`, `pub`, `type`, or `unsafe`, found `Item` + Item = T; //~ ERROR expected one of `extern`, `fn`, `type`, or `unsafe`, found `Item` } diff --git a/src/test/parse-fail/trait-pub-assoc-ty.rs b/src/test/parse-fail/trait-pub-assoc-ty.rs new file mode 100644 index 00000000000..02d76234d4e --- /dev/null +++ b/src/test/parse-fail/trait-pub-assoc-ty.rs @@ -0,0 +1,15 @@ +// 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. + +trait Foo { + pub type Foo; //~ ERROR expected one of `extern`, `fn`, `type`, or `unsafe`, found `pub` +} + +fn main() {} diff --git a/src/test/parse-fail/trait-pub-method.rs b/src/test/parse-fail/trait-pub-method.rs new file mode 100644 index 00000000000..e76802d2ea0 --- /dev/null +++ b/src/test/parse-fail/trait-pub-method.rs @@ -0,0 +1,15 @@ +// 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. + +trait Foo { + pub fn foo(); //~ ERROR expected one of `extern`, `fn`, `type`, or `unsafe`, found `pub` +} + +fn main() {} |
