Make new_without_default ignore const fns; fixes #977

This commit is contained in:
Manish Goregaokar
2016-06-03 20:15:07 +05:30
parent d7df882fa0
commit bf4ce86e9e
2 changed files with 11 additions and 2 deletions
+5 -1
View File
@@ -95,7 +95,11 @@ fn check_fn(&mut self, cx: &LateContext, kind: FnKind, decl: &hir::FnDecl, _: &h
return;
}
if let FnKind::Method(name, _, _, _) = kind {
if let FnKind::Method(name, ref sig, _, _) = kind {
if sig.constness == hir::Constness::Const {
// can't be implemented by default
return;
}
if decl.inputs.is_empty() && name.as_str() == "new" &&
cx.access_levels.is_reachable(id) {
let self_ty = cx.tcx.lookup_item_type(cx.tcx.map.local_def_id(
+6 -1
View File
@@ -1,4 +1,4 @@
#![feature(plugin)]
#![feature(plugin, const_fn)]
#![plugin(clippy)]
#![allow(dead_code)]
@@ -70,4 +70,9 @@ impl Private {
fn new() -> Private { unimplemented!() } // We don't lint private items
}
struct Const;
impl Const {
pub const fn new() -> Const { Const } // const fns can't be implemented via Default
}
fn main() {}