File tree 2 files changed +18
-4
lines changed
2 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -4667,7 +4667,7 @@ pub impl Resolver {
4667
4667
}
4668
4668
}
4669
4669
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> {
4671
4671
let this = &mut *self;
4672
4672
4673
4673
let mut maybes: ~[~str] = ~[];
@@ -4695,6 +4695,7 @@ pub impl Resolver {
4695
4695
if vec::len(values) > 0 &&
4696
4696
values[smallest] != uint::max_value &&
4697
4697
values[smallest] < str::len(name) + 2 &&
4698
+ values[smallest] <= max_distance &&
4698
4699
maybes[smallest] != name.to_owned() {
4699
4700
4700
4701
Some(vec::swap_remove(&mut maybes, smallest))
@@ -4771,8 +4772,9 @@ pub impl Resolver {
4771
4772
wrong_name) ) ;
4772
4773
}
4773
4774
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 ) {
4776
4778
Some ( m) => {
4777
4779
self . session. span_err( expr. span,
4778
4780
fmt ! ( "unresolved name: `%s`. \
@@ -5293,4 +5295,3 @@ pub fn resolve_crate(session: Session,
5293
5295
trait_map : trait_map
5294
5296
}
5295
5297
}
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