@@ -1808,15 +1808,6 @@ pub impl TypeContents {
1808
1808
if cx.vecs_implicitly_copyable {base} else {base + TC_OWNED_VEC}
1809
1809
}
1810
1810
1811
- fn is_safe_for_default_mode(&self, cx: ctxt) -> bool {
1812
- !self.intersects(TypeContents::nondefault_mode(cx))
1813
- }
1814
-
1815
- fn nondefault_mode(cx: ctxt) -> TypeContents {
1816
- let tc = TypeContents::nonimplicitly_copyable(cx);
1817
- tc + TC_BIG + TC_OWNED_VEC // disregard cx.vecs_implicitly_copyable
1818
- }
1819
-
1820
1811
fn needs_drop(&self, cx: ctxt) -> bool {
1821
1812
let tc = TC_MANAGED + TC_DTOR + TypeContents::owned(cx);
1822
1813
self.intersects(tc)
@@ -1876,9 +1867,6 @@ static TC_MUTABLE: TypeContents = TypeContents{bits:0b000010000000};
1876
1867
/// Mutable content, whether owned or by ref
1877
1868
static TC_ONCE_CLOSURE: TypeContents = TypeContents{bits:0b000100000000};
1878
1869
1879
- /// Something we estimate to be " big"
1880
- static TC_BIG: TypeContents = TypeContents{bits:0b001000000000};
1881
-
1882
1870
/// An enum with no variants.
1883
1871
static TC_EMPTY_ENUM: TypeContents = TypeContents{bits:0b010000000000};
1884
1872
@@ -2099,10 +2087,6 @@ pub fn type_contents(cx: ctxt, ty: t) -> TypeContents {
2099
2087
}
2100
2088
};
2101
2089
2102
- if type_size(cx, ty) > 4 {
2103
- result = result + TC_BIG;
2104
- }
2105
-
2106
2090
cache.insert(ty_id, result);
2107
2091
return result;
2108
2092
}
@@ -2178,68 +2162,6 @@ pub fn type_contents(cx: ctxt, ty: t) -> TypeContents {
2178
2162
debug!(" result = %s", r.to_str());
2179
2163
return r;
2180
2164
}
2181
-
2182
- /// gives a rough estimate of how much space it takes to represent
2183
- /// an instance of `ty`. Used for the mode transition.
2184
- fn type_size(cx: ctxt, ty: t) -> uint {
2185
- match get(ty).sty {
2186
- ty_nil | ty_bot | ty_bool | ty_int(_) | ty_uint(_) | ty_float(_) |
2187
- ty_ptr(_) | ty_box(_) | ty_uniq(_) | ty_estr(vstore_uniq) |
2188
- ty_trait(*) | ty_rptr(*) | ty_evec(_, vstore_uniq) |
2189
- ty_evec(_, vstore_box) | ty_estr(vstore_box) => {
2190
- 1
2191
- }
2192
-
2193
- ty_evec(_, vstore_slice(_)) |
2194
- ty_estr(vstore_slice(_)) |
2195
- ty_bare_fn(*) |
2196
- ty_closure(*) => {
2197
- 2
2198
- }
2199
-
2200
- ty_evec(t, vstore_fixed(n)) => {
2201
- type_size(cx, t.ty) * n
2202
- }
2203
-
2204
- ty_estr(vstore_fixed(n)) => {
2205
- n
2206
- }
2207
-
2208
- ty_struct(did, ref substs) => {
2209
- let flds = struct_fields(cx, did, substs);
2210
- flds.foldl(0, |s, f| *s + type_size(cx, f.mt.ty))
2211
- }
2212
-
2213
- ty_tup(ref tys) => {
2214
- tys.foldl(0, |s, t| *s + type_size(cx, *t))
2215
- }
2216
-
2217
- ty_enum(did, ref substs) => {
2218
- let variants = substd_enum_variants(cx, did, substs);
2219
- variants.foldl( // find max size of any variant
2220
- 0,
2221
- |m, v| uint::max(
2222
- *m,
2223
- // find size of this variant:
2224
- v.args.foldl(0, |s, a| *s + type_size(cx, *a))))
2225
- }
2226
-
2227
- ty_param(_) | ty_self(_) => {
2228
- 1
2229
- }
2230
-
2231
- ty_infer(_) => {
2232
- cx.sess.bug(~" Asked to compute kind of a type variable");
2233
- }
2234
- ty_type => 1,
2235
- ty_opaque_closure_ptr(_) => 1,
2236
- ty_opaque_box => 1,
2237
- ty_unboxed_vec(_) => 10,
2238
- ty_err => {
2239
- cx.sess.bug(~" Asked to compute kind of fictitious type ");
2240
- }
2241
- }
2242
- }
2243
2165
}
2244
2166
2245
2167
pub fn type_moves_by_default(cx: ctxt, ty: t) -> bool {
0 commit comments