about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-07-22 17:06:16 -0700
committerDaniel Micay <danielmicay@gmail.com>2013-07-24 09:45:21 -0400
commit8d3bb7eb306993430e5f5acf3e3fbf22d7a9d97f (patch)
tree212b19fdedc496021a74f73e8cd36b89fabdff4c /src
parent7fbe8002d515b8f8730fc6502a767719854af3d8 (diff)
downloadrust-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.rs20
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 }
             }