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.cpp29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/trans/enumerate.cpp b/src/trans/enumerate.cpp
index 02116d18..fb577959 100644
--- a/src/trans/enumerate.cpp
+++ b/src/trans/enumerate.cpp
@@ -623,9 +623,7 @@ void Trans_Enumerate_Types(EnumState& state)
if( fcn.m_code.m_mir )
{
const auto& mir = *fcn.m_code.m_mir;
- for(const auto& ty : mir.named_variables)
- tv.visit_type(monomorph(ty));
- for(const auto& ty : mir.temporaries)
+ for(const auto& ty : mir.locals)
tv.visit_type(monomorph(ty));
// TODO: Find all LValue::Deref instances and get the result type
@@ -646,19 +644,19 @@ void Trans_Enumerate_Types(EnumState& state)
};
// Recurse, if Deref get the type and add it to the visitor
TU_MATCHA( (lv), (e),
- (Variable,
+ (Return,
if( tmp_ty_ptr ) {
- return monomorph_outer(fcn.m_code.m_mir->named_variables[e]);
+ TODO(Span(), "Get return type for MIR type enumeration");
}
),
- (Temporary,
+ (Argument,
if( tmp_ty_ptr ) {
- return monomorph_outer(fcn.m_code.m_mir->temporaries[e.idx]);
+ return monomorph_outer(fcn.m_args[e.idx].second);
}
),
- (Argument,
+ (Local,
if( tmp_ty_ptr ) {
- return monomorph_outer(fcn.m_args[e.idx].second);
+ return monomorph_outer(fcn.m_code.m_mir->locals[e]);
}
),
(Static,
@@ -682,11 +680,6 @@ void Trans_Enumerate_Types(EnumState& state)
)
}
),
- (Return,
- if( tmp_ty_ptr ) {
- TODO(Span(), "Get return type for MIR type enumeration");
- }
- ),
(Field,
const auto& ity = visit_lvalue(tv,pp,fcn, *e.val, tmp_ty_ptr);
if( tmp_ty_ptr )
@@ -1344,17 +1337,15 @@ void Trans_Enumerate_FillFrom_Path(EnumState& state, const ::HIR::Path& path, co
void Trans_Enumerate_FillFrom_MIR_LValue(EnumState& state, const ::MIR::LValue& lv, const Trans_Params& pp)
{
TU_MATCHA( (lv), (e),
- (Variable,
- ),
- (Temporary,
+ (Return,
),
(Argument,
),
+ (Local,
+ ),
(Static,
Trans_Enumerate_FillFrom_Path(state, e, pp);
),
- (Return,
- ),
(Field,
Trans_Enumerate_FillFrom_MIR_LValue(state, *e.val, pp);
),