diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2015-01-25 10:28:58 +1100 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2015-01-25 10:44:56 +1100 |
| commit | ae4e1a190be74024997551d2fe8c183866fc1cc5 (patch) | |
| tree | 40771e090f7cd92a9dd0a6f10a9abf6d3d37e139 /src/libsyntax/ext/base.rs | |
| parent | 4be79d6acde9eed3a9b5281a46f385bcb4ce736c (diff) | |
| download | rust-ae4e1a190be74024997551d2fe8c183866fc1cc5.tar.gz rust-ae4e1a190be74024997551d2fe8c183866fc1cc5.zip | |
Tell the compiler to tell us that `deriving` is dead.
I'm beginning to suspect it's impossible to avoid accidentally writing `#[deriving]` at least once in every program, and it results in non-intuitive error messages: "Foo doesn't have any method in scope `clone`" despite there being a `#[deriv...(Clone)]` attribute! Also, lots of documentation around the internet uses `#[deriving]` so providing this guidance is very helpful (lots of people ask in #rust about this error). Fixes #21166.
Diffstat (limited to 'src/libsyntax/ext/base.rs')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 9128bc05f6f..ef8010927dc 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -467,6 +467,8 @@ fn initial_syntax_expander_table(ecfg: &expand::ExpansionConfig) -> SyntaxEnv { ext::log_syntax::expand_syntax_ext)); syntax_expanders.insert(intern("derive"), Decorator(box ext::deriving::expand_meta_derive)); + syntax_expanders.insert(intern("deriving"), + Decorator(box ext::deriving::expand_deprecated_deriving)); if ecfg.enable_quotes { // Quasi-quoting expanders |
