diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-06-06 16:13:21 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-06-06 16:13:21 -0700 |
| commit | ee8c762bdebb9800e768762e8f7d36a44b65f167 (patch) | |
| tree | 6cc823d3ddb112f731c2ecba6560d869918b8bf9 /src | |
| parent | fec3b91a3c9ac49fb3b9a5056497046ae7875525 (diff) | |
| download | rust-ee8c762bdebb9800e768762e8f7d36a44b65f167.tar.gz rust-ee8c762bdebb9800e768762e8f7d36a44b65f167.zip | |
Change subtypes_require to handle class fields correctly
Diffstat (limited to 'src')
| -rw-r--r-- | src/rustc/middle/ty.rs | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/rustc/middle/ty.rs b/src/rustc/middle/ty.rs index 3b32bca1e5f..b4d2e86e7c6 100644 --- a/src/rustc/middle/ty.rs +++ b/src/rustc/middle/ty.rs @@ -1678,11 +1678,8 @@ fn is_instantiable(cx: ctxt, r_ty: t) -> bool { ty_class(did, substs) { vec::push(*seen, did); - let r = vec::any(lookup_class_fields(cx, did)) {|f| - let fty = ty::lookup_item_type(cx, f.id); - let sty = subst(cx, substs, fty.ty); - type_requires(cx, seen, r_ty, sty) - }; + let r = vec::any(class_items_as_fields(cx, did, substs)) {|f| + type_requires(cx, seen, r_ty, f.mt.ty)}; vec::pop(*seen); r } |
