rollup merge of #20511: csouth3/derive-lint

`#[deriving]` has been changed to `#[derive]`, so we should update this lint accordingly so that it remains consistent with the language.

Also register the rename with the LintStore.

I've changed the one reference to `raw_pointer_deriving` that occurs in the tests (as well as renamed the file appropriately), but the rest of the `raw_pointer_deriving`s in the Rust codebase will need to wait for a snapshot to be changed because stage0 doesn't know about the new lint name.  I'll take care of the remaining renaming after the next snapshot.

Closes #20498.
This commit is contained in:
Alex Crichton 2015-01-05 18:37:23 -08:00
commit cc0697ec9e
3 changed files with 14 additions and 13 deletions

View file

@ -546,20 +546,20 @@ impl LintPass for BoxPointers {
}
declare_lint! {
RAW_POINTER_DERIVING,
RAW_POINTER_DERIVE,
Warn,
"uses of #[derive] with raw pointers are rarely correct"
}
struct RawPtrDerivingVisitor<'a, 'tcx: 'a> {
struct RawPtrDeriveVisitor<'a, 'tcx: 'a> {
cx: &'a Context<'a, 'tcx>
}
impl<'a, 'tcx, 'v> Visitor<'v> for RawPtrDerivingVisitor<'a, 'tcx> {
impl<'a, 'tcx, 'v> Visitor<'v> for RawPtrDeriveVisitor<'a, 'tcx> {
fn visit_ty(&mut self, ty: &ast::Ty) {
static MSG: &'static str = "use of `#[derive]` with a raw pointer";
if let ast::TyPtr(..) = ty.node {
self.cx.span_lint(RAW_POINTER_DERIVING, ty.span, MSG);
self.cx.span_lint(RAW_POINTER_DERIVE, ty.span, MSG);
}
visit::walk_ty(self, ty);
}
@ -568,21 +568,21 @@ impl<'a, 'tcx, 'v> Visitor<'v> for RawPtrDerivingVisitor<'a, 'tcx> {
fn visit_block(&mut self, _: &ast::Block) {}
}
pub struct RawPointerDeriving {
pub struct RawPointerDerive {
checked_raw_pointers: NodeSet,
}
impl RawPointerDeriving {
pub fn new() -> RawPointerDeriving {
RawPointerDeriving {
impl RawPointerDerive {
pub fn new() -> RawPointerDerive {
RawPointerDerive {
checked_raw_pointers: NodeSet::new(),
}
}
}
impl LintPass for RawPointerDeriving {
impl LintPass for RawPointerDerive {
fn get_lints(&self) -> LintArray {
lint_array!(RAW_POINTER_DERIVING)
lint_array!(RAW_POINTER_DERIVE)
}
fn check_item(&mut self, cx: &Context, item: &ast::Item) {
@ -607,7 +607,7 @@ impl LintPass for RawPointerDeriving {
if !self.checked_raw_pointers.insert(item.id) { return }
match item.node {
ast::ItemStruct(..) | ast::ItemEnum(..) => {
let mut visitor = RawPtrDerivingVisitor { cx: cx };
let mut visitor = RawPtrDeriveVisitor { cx: cx };
visit::walk_item(&mut visitor, &*item);
}
_ => {}

View file

@ -208,7 +208,7 @@ impl LintStore {
add_builtin_with_new!(sess,
TypeLimits,
RawPointerDeriving,
RawPointerDerive,
MissingDoc,
);
@ -247,6 +247,7 @@ impl LintStore {
self.register_renamed("unknown_crate_type", "unknown_crate_types");
self.register_renamed("variant_size_difference", "variant_size_differences");
self.register_renamed("transmute_fat_ptr", "fat_ptr_transmutes");
self.register_renamed("raw_pointer_deriving", "raw_pointer_derive");
}

View file

@ -9,7 +9,7 @@
// except according to those terms.
#![allow(dead_code)]
#![deny(raw_pointer_deriving)]
#![deny(raw_pointer_derive)]
#[derive(Clone)]
struct Foo {