Skip to content

Commit

Permalink
Deprecate custom_derive
Browse files Browse the repository at this point in the history
Has a custom deprecation since deprecating features is not supported and is a pain to implement
  • Loading branch information
nrc committed Oct 26, 2016
1 parent d1b08b1 commit b7675cf
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/libsyntax/feature_gate.rs
Expand Up @@ -897,7 +897,12 @@ pub const EXPLAIN_ALLOW_INTERNAL_UNSTABLE: &'static str =
"allow_internal_unstable side-steps feature gating and stability checks";

pub const EXPLAIN_CUSTOM_DERIVE: &'static str =
"`#[derive]` for custom traits is not stable enough for use and is subject to change";
"`#[derive]` for custom traits is not stable enough for use. It is deprecated and will \
be removed in v1.15";

pub const EXPLAIN_DEPR_CUSTOM_DERIVE: &'static str =
"`#[derive]` for custom traits is deprecated and will be removed in v1.15. Prefer using \
procedural macro custom derive";

pub const EXPLAIN_DERIVE_UNDERSCORE: &'static str =
"attributes of the form `#[derive_*]` are reserved for the compiler";
Expand Down
1 change: 1 addition & 0 deletions src/libsyntax_ext/deriving/mod.rs
Expand Up @@ -175,6 +175,7 @@ pub fn expand_derive(cx: &mut ExtCtxt,
feature_gate::GateIssue::Language,
feature_gate::EXPLAIN_CUSTOM_DERIVE);
} else {
cx.span_warn(titem.span, EXPLAIN_DEPR_CUSTOM_DERIVE);
let name = intern_and_get_ident(&format!("derive_{}", tname));
let mitem = cx.meta_word(titem.span, name);
new_attributes.push(cx.attribute(mitem.span, mitem));
Expand Down

0 comments on commit b7675cf

Please sign in to comment.