diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-07-22 17:06:16 -0700 |
|---|---|---|
| committer | Daniel Micay <danielmicay@gmail.com> | 2013-07-24 09:45:21 -0400 |
| commit | 8d3bb7eb306993430e5f5acf3e3fbf22d7a9d97f (patch) | |
| tree | 212b19fdedc496021a74f73e8cd36b89fabdff4c /src | |
| parent | 7fbe8002d515b8f8730fc6502a767719854af3d8 (diff) | |
| download | rust-8d3bb7eb306993430e5f5acf3e3fbf22d7a9d97f.tar.gz rust-8d3bb7eb306993430e5f5acf3e3fbf22d7a9d97f.zip | |
rustc: Remove some dead code from method resolution
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/middle/typeck/check/method.rs | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/src/librustc/middle/typeck/check/method.rs b/src/librustc/middle/typeck/check/method.rs index 4a32e8bf952..8d546366846 100644 --- a/src/librustc/middle/typeck/check/method.rs +++ b/src/librustc/middle/typeck/check/method.rs @@ -194,7 +194,6 @@ impl<'self> LookupContext<'self> { self.push_inherent_candidates(self_ty); self.push_extension_candidates(); - let mut enum_dids = ~[]; let mut self_ty = self_ty; let mut autoderefs = 0; loop { @@ -236,7 +235,7 @@ impl<'self> LookupContext<'self> { } // Otherwise, perform autoderef. - match self.deref(self_ty, &mut enum_dids) { + match self.deref(self_ty) { None => { break; } Some(ty) => { self_ty = ty; @@ -248,20 +247,8 @@ impl<'self> LookupContext<'self> { self.search_for_autosliced_method(self_ty, autoderefs) } - pub fn deref(&self, ty: ty::t, enum_dids: &mut ~[ast::def_id]) + pub fn deref(&self, ty: ty::t) -> Option<ty::t> { - match ty::get(ty).sty { - ty_enum(did, _) => { - // Watch out for newtype'd enums like "enum t = @T". - // See discussion in typeck::check::do_autoderef(). - if enum_dids.iter().any(|x| x == &did) { - return None; - } - enum_dids.push(did); - } - _ => {} - } - match ty::deref(self.tcx(), ty, false) { None => None, Some(t) => { @@ -285,7 +272,6 @@ impl<'self> LookupContext<'self> { * we'll want to find the inherent impls for `C`. */ - let mut enum_dids = ~[]; let mut self_ty = self_ty; loop { match get(self_ty).sty { @@ -314,7 +300,7 @@ impl<'self> LookupContext<'self> { // n.b.: Generally speaking, we only loop if we hit the // fallthrough case in the match above. The exception // would be newtype enums. - self_ty = match self.deref(self_ty, &mut enum_dids) { + self_ty = match self.deref(self_ty) { None => { return; } Some(ty) => { ty } } |
