about summary refs log tree commit diff
path: root/src/rustc/middle/alias.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/rustc/middle/alias.rs')
-rw-r--r--src/rustc/middle/alias.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/rustc/middle/alias.rs b/src/rustc/middle/alias.rs
index 2dc09a9a60a..de591b9cc4e 100644
--- a/src/rustc/middle/alias.rs
+++ b/src/rustc/middle/alias.rs
@@ -503,7 +503,7 @@ fn ty_can_unsafely_include(cx: ctx, needle: unsafe_ty, haystack: ty::t,
         } { ret true; }
         alt ty::get(haystack).struct {
           ty::ty_enum(_, ts) {
-            for ts.each {|t|
+            for ts.tps.each {|t|
                 if helper(tcx, needle, t, mutbl) { ret true; }
             }
             ret false;
@@ -565,10 +565,11 @@ fn copy_is_expensive(tcx: ty::ctxt, ty: ty::t) -> bool {
           ty::ty_fn(_) { 4u }
           ty::ty_str | ty::ty_vec(_) | ty::ty_param(_, _) { 50u }
           ty::ty_uniq(mt) { 1u + score_ty(tcx, mt.ty) }
-          ty::ty_enum(_, ts) | ty::ty_tup(ts) {
-            let mut sum = 0u;
-            for ts.each {|t| sum += score_ty(tcx, t); }
-            sum
+          ty::ty_enum(_, substs) {
+            substs.tps.foldl(0u) { |sum, t| sum + score_ty(tcx, t) }
+          }
+          ty::ty_tup(ts) {
+            ts.foldl(0u) { |sum, t| sum + score_ty(tcx, t) }
           }
           ty::ty_rec(fs) {
             let mut sum = 0u;