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 @@ -4667,7 +4667,7 @@ pub impl Resolver {
46674667 }
46684668 }
46694669
4670- fn find_best_match_for_name(@mut self, name: &str) -> Option<~str> {
4670+ fn find_best_match_for_name(@mut self, name: &str, max_distance: uint ) -> Option<~str> {
46714671 let this = &mut *self;
46724672
46734673 let mut maybes: ~[~str] = ~[];
@@ -4695,6 +4695,7 @@ pub impl Resolver {
46954695 if vec::len(values) > 0 &&
46964696 values[smallest] != uint::max_value &&
46974697 values[smallest] < str::len(name) + 2 &&
4698+ values[smallest] <= max_distance &&
46984699 maybes[smallest] != name.to_owned() {
46994700
47004701 Some(vec::swap_remove(&mut maybes, smallest))
@@ -4771,8 +4772,9 @@ pub impl Resolver {
47714772 wrong_name) ) ;
47724773 }
47734774 else {
4774- match self . find_best_match_for_name( wrong_name) {
4775-
4775+ // limit search to 5 to reduce the number
4776+ // of stupid suggestions
4777+ match self . find_best_match_for_name( wrong_name, 5 ) {
47764778 Some ( m) => {
47774779 self . session. span_err( expr. span,
47784780 fmt ! ( "unresolved name: `%s`. \
@@ -5293,4 +5295,3 @@ pub fn resolve_crate(session: Session,
52935295 trait_map : trait_map
52945296 }
52955297}
5296-
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