diff options
Diffstat (limited to 'src/rustc/middle/alias.rs')
| -rw-r--r-- | src/rustc/middle/alias.rs | 11 |
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; |
