diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-06-05 16:20:12 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-06-06 15:45:49 -0700 |
| commit | 32e448e0da9fd1e93c5bcce953d1ffbc4193565a (patch) | |
| tree | 9cb6c7db7422be4817c98909f6d92f10dcdfaadb /src | |
| parent | a5c9e8d59ed49725550ebd9e60871d51736393b4 (diff) | |
| download | rust-32e448e0da9fd1e93c5bcce953d1ffbc4193565a.tar.gz rust-32e448e0da9fd1e93c5bcce953d1ffbc4193565a.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 73f601cf4b0..a426ded68f8 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 } |
