diff options
| author | Marijn Haverbeke <marijnh@gmail.com> | 2012-04-18 16:11:12 +0200 |
|---|---|---|
| committer | Marijn Haverbeke <marijnh@gmail.com> | 2012-04-18 17:21:39 +0200 |
| commit | fda7bb672134257c0466cd6b7bbf738963d2a130 (patch) | |
| tree | d0998df70e52005d6e17d84fa386d5d9a6046edb /src/rustc/middle | |
| parent | 73ea690016452d7c7d732d0fd6940d6271411606 (diff) | |
Fix oversight in type_use.rs
Closes #2053
Diffstat (limited to 'src/rustc/middle')
| -rw-r--r-- | src/rustc/middle/trans/type_use.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/rustc/middle/trans/type_use.rs b/src/rustc/middle/trans/type_use.rs index 232a8cda48f..c7f09c9dc5f 100644 --- a/src/rustc/middle/trans/type_use.rs +++ b/src/rustc/middle/trans/type_use.rs @@ -180,6 +180,21 @@ fn mark_for_expr(cx: ctx, e: @expr) { // after the chosen field let base_ty = ty::node_id_to_type(cx.ccx.tcx, base.id); type_needs(cx, use_repr, ty::type_autoderef(cx.ccx.tcx, base_ty)); + + option::iter(cx.ccx.maps.method_map.find(e.id)) {|mth| + alt mth { + typeck::method_static(did) { + option::iter(cx.ccx.tcx.node_type_substs.find(e.id)) {|ts| + vec::iter2(type_uses_for(cx.ccx, did, ts.len()), ts) + {|uses, subst| type_needs(cx, uses, subst)} + } + } + typeck::method_param(_, _, param, _) { + cx.uses[param] |= use_tydesc; + } + typeck::method_iface(_, _) {} + } + } } expr_log(_, _, val) { node_type_needs(cx, use_tydesc, val.id); |
