summaryrefslogtreecommitdiff
path: root/src/trans/enumerate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/trans/enumerate.cpp')
-rw-r--r--src/trans/enumerate.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/trans/enumerate.cpp b/src/trans/enumerate.cpp
index 25513c17..4de920db 100644
--- a/src/trans/enumerate.cpp
+++ b/src/trans/enumerate.cpp
@@ -268,11 +268,24 @@ namespace {
}
TRACE_FUNCTION_F(ty << " - " << (mode == Mode::Shallow ? "Shallow" : (mode == Mode::Normal ? "Normal" : "Deep")));
- if( mode != Mode::Shallow )
+ if( mode == Mode::Shallow )
+ {
+ TU_MATCH_DEF(::HIR::TypeRef::Data, (ty.m_data), (te),
+ (
+ ),
+ (Pointer,
+ visit_type(*te.inner, Mode::Shallow);
+ ),
+ (Borrow,
+ visit_type(*te.inner, Mode::Shallow);
+ )
+ )
+ }
+ else
{
if( active_set.find(&ty) != active_set.end() ) {
// TODO: Handle recursion
- DEBUG("- Type recursion with " << ty);
+ BUG(Span(), "- Type recursion with " << ty);
return ;
}
active_set.insert( &ty );