about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-02-28 19:07:26 -0800
committerPatrick Walton <pcwalton@mimiga.net>2011-02-28 19:07:26 -0800
commit8d8b3d985a02153a349e72bd9840231b43c51864 (patch)
treeaa09216bdd0b4937759d5d7624eace7bbc7fca4b
parent687d328d7cf3fdec84ab4f07f86262dc5001738a (diff)
rustc: Mark tags that have subtypes with dynamic size as dynamic
-rw-r--r--src/comp/middle/ty.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs
index 25ef8709ecc..8b9ef6d146f 100644
--- a/src/comp/middle/ty.rs
+++ b/src/comp/middle/ty.rs
@@ -471,6 +471,13 @@ fn type_has_dynamic_size(@t ty) -> bool {
                 i += 1u;
             }
         }
+        case (ty_tag(_, ?subtys)) {
+            auto i = 0u;
+            while (i < _vec.len[@t](subtys)) {
+                if (type_has_dynamic_size(subtys.(i))) { ret true; }
+                i += 1u;
+            }
+        }
         case (ty_param(_)) { ret true; }
         case (_) { /* fall through */ }
     }