Skip to content

Commit 22c10d9

Browse files
committed
feat: added HIR -> MIR table usage inside of LRU lowering in MIR layer
1 parent b6f6e4b commit 22c10d9

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

  • compiler/astoir_mir_lowering/src

compiler/astoir_mir_lowering/src/lru.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use astoir_hir::{nodes::{HIRNode, HIRNodeKind}, structs::StructLRUStep};
22
use astoir_mir::{blocks::refer::MIRBlockReference, builder::build_field_pointer, vals::{base::BaseMIRValue, refer::MIRVariableReference}};
3-
use diagnostics::DiagnosticResult;
3+
use compiler_typing::raw::RawType;
4+
use diagnostics::{DiagnosticResult, unsure_panic};
45

56
use crate::MIRLoweringContext;
67

@@ -10,9 +11,15 @@ pub fn lower_hir_lru_step(block: MIRBlockReference, step: StructLRUStep, ctx: &m
1011
return Ok(ctx.mir_ctx.blocks[block].get_variable_ref(variable)?.as_pointer_ref()?.into());
1112
}
1213

13-
let ptr = curr.unwrap().as_ptr()?;
14+
let curr = curr.unwrap();
15+
let ptr = curr.as_ptr()?;
1416

15-
return Ok(build_field_pointer(&mut ctx.mir_ctx, ptr, variable)?.into())
17+
let struct_type = match ctx.mir_ctx.ssa_hints.get_hint(curr.get_ssa_index()).get_type().get_generic(&ctx.hir_ctx.type_storage) {
18+
RawType::LoweredStruct(_, container) => container,
19+
_ => unsure_panic!("lower_hir_lru_step curr was not an actual thing")
20+
};
21+
22+
return Ok(build_field_pointer(&mut ctx.mir_ctx, ptr, struct_type.resolve_hir_index(variable))?.into())
1623
}
1724

1825
panic!("Invalid step!")

0 commit comments

Comments
 (0)