Skip to content

Commit b173485

Browse files
committed
Complain about multiple methods in scope only once
Closes #1803
1 parent a681628 commit b173485

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/comp/middle/typeck.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1695,7 +1695,7 @@ fn lookup_method_inner(fcx: @fn_ctxt, expr: @ast::expr,
16951695
} else { csearch::get_type(tcx, did).ty }
16961696
}
16971697

1698-
let result = none;
1698+
let result = none, complained = false;
16991699
std::list::iter(fcx.ccx.impl_map.get(expr.id)) {|impls|
17001700
if option::is_some(result) { ret; }
17011701
for @{did, methods, _} in *impls {
@@ -1709,8 +1709,11 @@ fn lookup_method_inner(fcx: @fn_ctxt, expr: @ast::expr,
17091709
ures_ok(_) {
17101710
if option::is_some(result) {
17111711
// FIXME[impl] score specificity to resolve ambiguity?
1712-
tcx.sess.span_err(
1713-
expr.span, "multiple applicable methods in scope");
1712+
if !complained {
1713+
tcx.sess.span_err(expr.span, "multiple applicable \
1714+
methods in scope");
1715+
complained = true;
1716+
}
17141717
} else {
17151718
result = some({
17161719
method_ty: ty_from_did(tcx, m.did),

0 commit comments

Comments
 (0)