diff options
| author | Jakub Bukaj <jakub@jakub.cc> | 2014-11-19 22:39:49 +0100 |
|---|---|---|
| committer | Jakub Bukaj <jakub@jakub.cc> | 2014-11-19 22:39:49 +0100 |
| commit | c28acd0251293939f5c242a0652b0faf01445aab (patch) | |
| tree | 95cf7cd195bc0f7ff298c0906eda3311ab775288 /src/libsyntax | |
| parent | 7884dd9cec832e667594aaeed1144a2a9bab3800 (diff) | |
| parent | ad61ff4b817f8581ea4c12f897f5e6baafe27952 (diff) | |
| download | rust-c28acd0251293939f5c242a0652b0faf01445aab.tar.gz rust-c28acd0251293939f5c242a0652b0faf01445aab.zip | |
rollup merge of #19090: kmcallister/deriving-non-type
Besides being more helpful, this gives us the flexibility to later define a meaning for something like
```rust
#[deriving(...)]
mod bar { ... }
```
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ext/deriving/generic/mod.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index 8fccb0755f4..fcd4966683d 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -335,7 +335,7 @@ pub fn combine_substructure<'a>(f: CombineSubstructureFunc<'a>) impl<'a> TraitDef<'a> { pub fn expand(&self, cx: &mut ExtCtxt, - _mitem: &ast::MetaItem, + mitem: &ast::MetaItem, item: &ast::Item, push: |P<ast::Item>|) { let newitem = match item.node { @@ -351,7 +351,10 @@ impl<'a> TraitDef<'a> { item.ident, generics) } - _ => return + _ => { + cx.span_err(mitem.span, "`deriving` may only be applied to structs and enums"); + return; + } }; // Keep the lint attributes of the previous item to control how the // generated implementations are linted |
