Cyrill Leutwiler 1 рік тому
батько
коміт
b6b2fc941a

+ 1 - 1
src/codegen/array_boundary.rs

@@ -61,7 +61,7 @@ pub(crate) fn handle_array_assign(
                 cfg.array_lengths_temps.insert(pos, to_update);
             } else {
                 // If the right hand side doesn't have a temp, it must be a function parameter or a struct member.
-                cfg.array_lengths_temps.remove(&pos);
+                cfg.array_lengths_temps.swap_remove(&pos);
             }
         }
 

+ 1 - 1
src/codegen/reaching_definitions.rs

@@ -193,7 +193,7 @@ pub fn apply_transfers(transfers: &[Transfer], vars: &mut IndexMap<usize, IndexM
     for transfer in transfers {
         match transfer {
             Transfer::Kill { var_no } => {
-                vars.remove(var_no);
+                vars.swap_remove(var_no);
             }
             Transfer::Mod { var_no } => {
                 if let Some(entry) = vars.get_mut(var_no) {

+ 1 - 1
src/codegen/vector_to_slice.rs

@@ -134,7 +134,7 @@ fn apply_transfers(
     for transfer in transfers {
         match transfer {
             Transfer::Kill { var_no } => {
-                vars.remove(var_no);
+                vars.swap_remove(var_no);
             }
             Transfer::Mod { var_no } => {
                 if let Some(entry) = vars.get_mut(var_no) {

+ 3 - 3
tests/lir_tests/convert_lir.rs

@@ -27,7 +27,7 @@ fn print_lir_str(src: &str, cfg_no: usize, target: Target) {
         ns.print_diagnostics_in_plain(&resolver, false);
     }
     codegen(&mut ns, &Default::default());
-    let contract = ns.contracts.get(0).unwrap();
+    let contract = ns.contracts.first().unwrap();
     let cfg = contract.cfg.get(cfg_no).unwrap();
 
     let converter = Converter::new(&ns, cfg);
@@ -47,7 +47,7 @@ fn assert_lir_str_eq_by_name(src: &str, cfg_name: &str, expected: &str, target:
         ns.print_diagnostics_in_plain(&resolver, false);
     }
     codegen(&mut ns, &Default::default());
-    let contract = ns.contracts.get(0).unwrap();
+    let contract = ns.contracts.first().unwrap();
     let cfg = contract
         .cfg
         .iter()
@@ -84,7 +84,7 @@ fn assert_lir_str_eq(src: &str, cfg_no: usize, expected: &str, target: Target) {
         ns.print_diagnostics_in_plain(&resolver, false);
     }
     codegen(&mut ns, &Default::default());
-    let contract = ns.contracts.get(0).unwrap();
+    let contract = ns.contracts.first().unwrap();
     let cfg = contract.cfg.get(cfg_no).unwrap();
 
     let converter = Converter::new(&ns, cfg);