Skip to content

Commit a667a69

Browse files
committed
Move the lint for the stability lints to the method name only
Closes #17337.
1 parent f56c67b commit a667a69

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/librustc/lint/builtin.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -1492,14 +1492,17 @@ impl LintPass for Stability {
14921492
});
14931493
if skip { return; }
14941494

1495+
let mut span = e.span;
1496+
14951497
let id = match e.node {
14961498
ast::ExprPath(..) | ast::ExprStruct(..) => {
14971499
match cx.tcx.def_map.borrow().find(&e.id) {
14981500
Some(&def) => def.def_id(),
14991501
None => return
15001502
}
15011503
}
1502-
ast::ExprMethodCall(..) => {
1504+
ast::ExprMethodCall(i, _, _) => {
1505+
span = i.span;
15031506
let method_call = typeck::MethodCall::expr(e.id);
15041507
match cx.tcx.method_map.borrow().find(&method_call) {
15051508
Some(method) => {
@@ -1556,7 +1559,7 @@ impl LintPass for Stability {
15561559
_ => format!("use of {} item", label)
15571560
};
15581561

1559-
cx.span_lint(lint, e.span, msg.as_slice());
1562+
cx.span_lint(lint, span, msg.as_slice());
15601563
}
15611564
}
15621565

src/test/compile-fail/issue-17337.rs

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![deny(deprecated)]
12+
13+
struct Foo;
14+
15+
impl Foo {
16+
#[deprecated]
17+
fn foo(self) {}
18+
}
19+
20+
fn main() {
21+
Foo
22+
.foo(); //~ ERROR use of deprecated item
23+
}

0 commit comments

Comments
 (0)