about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorMarijn Haverbeke <marijnh@gmail.com>2012-02-23 17:44:03 +0100
committerMarijn Haverbeke <marijnh@gmail.com>2012-02-23 17:44:03 +0100
commit8733386bcc3702b66d8eba633059b5349bc80741 (patch)
tree15ef2af1f5aaea2406bb34622e0a89577def5569 /src/comp
parent0f00d9a797953b2ec6a1cb4c0d7c2a3235fb3a42 (diff)
Make sure fold_ty preserves associated def_ids
Closes #1884
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/ty.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs
index 6b0c6f5d1dc..a0189264446 100644
--- a/src/comp/middle/ty.rs
+++ b/src/comp/middle/ty.rs
@@ -607,6 +607,10 @@ fn fold_ty(cx: ctxt, fld: fold_mode, ty_0: t) -> t {
           cx.sess.fatal("Unsupported sort of type in fold_ty");
       }
     }
+    alt tb.o_def_id {
+      some(did) { ty = mk_t_with_id(cx, get(ty).struct, some(did)); }
+      _ {}
+    }
 
     // If this is a general type fold, then we need to run it now.
     alt fld { fm_general(folder) { ret folder(ty); } _ { ret ty; } }