summaryrefslogtreecommitdiff
path: root/src/trans/enumerate.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2017-01-11 18:38:16 +0800
committerJohn Hodge <tpg@mutabah.net>2017-01-11 18:38:16 +0800
commit04b6360ff879a70a42fcd5f09cccc23cc2dd2d9f (patch)
tree3edb5fb90c56557ec4e1fbe2f31f24daf9daccc1 /src/trans/enumerate.cpp
parentc8ce15fead40716f3cd904e2dd4c77d324931357 (diff)
downloadmrust-04b6360ff879a70a42fcd5f09cccc23cc2dd2d9f.tar.gz
Trans - Require types used in type_id to be defined
Diffstat (limited to 'src/trans/enumerate.cpp')
-rw-r--r--src/trans/enumerate.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/trans/enumerate.cpp b/src/trans/enumerate.cpp
index 272d96f2..b12673b1 100644
--- a/src/trans/enumerate.cpp
+++ b/src/trans/enumerate.cpp
@@ -866,6 +866,12 @@ void Trans_Enumerate_Types(EnumState& state)
(Call,
if( te.fcn.is_Value() )
H::visit_lvalue(tv,pp,fcn, te.fcn.as_Value());
+ else if( te.fcn.is_Intrinsic() )
+ {
+ if( te.fcn.as_Intrinsic().name == "type_id" ) {
+ tv.visit_type(monomorph(te.fcn.as_Intrinsic().params.m_types.at(0)));
+ }
+ }
H::visit_lvalue(tv,pp,fcn, te.ret_val);
for(const auto& arg : te.args)
H::visit_lvalue(tv,pp,fcn, arg);