File tree Expand file tree Collapse file tree 2 files changed +18
-4
lines changed Expand file tree Collapse file tree 2 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -4666,7 +4666,7 @@ pub impl Resolver {
46664666 }
46674667 }
46684668
4669- fn find_best_match_for_name(@mut self, name: &str) -> Option<~str> {
4669+ fn find_best_match_for_name(@mut self, name: &str, max_distance: uint ) -> Option<~str> {
46704670 let this = &mut *self;
46714671
46724672 let mut maybes: ~[~str] = ~[];
@@ -4694,6 +4694,7 @@ pub impl Resolver {
46944694 if vec::len(values) > 0 &&
46954695 values[smallest] != uint::max_value &&
46964696 values[smallest] < str::len(name) + 2 &&
4697+ values[smallest] <= max_distance &&
46974698 maybes[smallest] != name.to_owned() {
46984699
46994700 Some(vec::swap_remove(&mut maybes, smallest))
@@ -4770,8 +4771,9 @@ pub impl Resolver {
47704771 wrong_name) ) ;
47714772 }
47724773 else {
4773- match self . find_best_match_for_name( wrong_name) {
4774-
4774+ // limit search to 5 to reduce the number
4775+ // of stupid suggestions
4776+ match self . find_best_match_for_name( wrong_name, 5 ) {
47754777 Some ( m) => {
47764778 self . session. span_err( expr. span,
47774779 fmt ! ( "unresolved name: `%s`. \
@@ -5292,4 +5294,3 @@ pub fn resolve_crate(session: Session,
52925294 trait_map : trait_map
52935295 }
52945296}
5295-
Original file line number Diff line number Diff line change 1+ // Copyright 2012 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+ // error-pattern: unresolved name: `foobar`.
12+
13+ fn main ( args : ~[ str ] ) { debug ! ( foobar) ; }
You can’t perform that action at this time.
0 commit comments