From 6f70ced37884222de757a26fdd52b6d29a4ffbfe Mon Sep 17 00:00:00 2001 From: Guy Repta <50716988+gtrepta@users.noreply.github.com> Date: Tue, 11 Feb 2025 14:13:15 -0600 Subject: [PATCH 1/3] Add "types" field to smir json with type ids and their associated TyKinds --- src/printer.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index c3d66ca..16171cf 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -461,7 +461,8 @@ pub enum AllocInfo { } type LinkMap<'tcx> = HashMap, (ItemSource, FnSymType)>; type AllocMap = HashMap; -type TyMap = HashMap)>; +type TyMap = + HashMap)>; struct InternedValueCollector<'tcx, 'local> { tcx: TyCtxt<'tcx>, @@ -629,7 +630,7 @@ fn collect_ty(val_collector: &mut InternedValueCollector, val: stable_mir::ty::T if val_collector .visited_tys - .insert(hash(val), (val.kind(), maybe_layout_shape)) + .insert(val, (val.kind(), maybe_layout_shape)) .is_some() { match val.kind() { @@ -925,6 +926,7 @@ pub struct SmirJson<'t> { pub functions: Vec<(LinkMapKey<'t>, FnSymType)>, pub uneval_consts: Vec<(ConstDef, String)>, pub items: Vec, + pub types: Vec<(stable_mir::ty::Ty, stable_mir::ty::TyKind)>, pub debug: Option>, } @@ -970,7 +972,7 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { .collect::>(); Some(SmirJsonDebugInfo { fn_sources, - types: visited_tys, + types: visited_tys.clone(), foreign_modules: get_foreign_module_details(), }) } else { @@ -984,6 +986,11 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { let allocs = visited_allocs.into_iter().collect::>(); let crate_id = tcx.stable_crate_id(LOCAL_CRATE).as_u64(); + let types = visited_tys + .into_iter() + .map(|(k, (v, _))| (k, v)) + .collect::>(); + SmirJson { name: local_crate.name, crate_id, @@ -991,6 +998,7 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { functions: called_functions, uneval_consts: unevaluated_consts.into_iter().collect(), items, + types, debug, } } From a44b9287b96bf6183782b79e0d8189bd22888c89 Mon Sep 17 00:00:00 2001 From: Guy Repta <50716988+gtrepta@users.noreply.github.com> Date: Tue, 11 Feb 2025 14:23:17 -0600 Subject: [PATCH 2/3] Update golden tests --- tests/integration/normalise-filter.jq | 7 +- .../programs/assert_eq.smir.json.expected | 729 +++++++++++++++ .../programs/binop.smir.json.expected | 487 ++++++++++ .../programs/char-trivial.smir.json.expected | 437 +++++++++ .../programs/closure-args.smir.json.expected | 531 +++++++++++ .../closure-no-args.smir.json.expected | 511 ++++++++++ .../const-arithm-simple.smir.json.expected | 456 +++++++++ .../programs/div.smir.json.expected | 437 +++++++++ .../double-ref-deref.smir.json.expected | 459 +++++++++ .../programs/enum.smir.json.expected | 411 ++++++++ .../programs/fibonacci.smir.json.expected | 467 +++++++++ .../programs/float.smir.json.expected | 473 ++++++++++ .../programs/modulo.smir.json.expected | 437 +++++++++ .../mutual_recursion.smir.json.expected | 478 ++++++++++ .../option-construction.smir.json.expected | 464 +++++++++ .../primitive-type-bounds.smir.json.expected | 456 +++++++++ .../recursion-simple-match.smir.json.expected | 467 +++++++++ .../recursion-simple.smir.json.expected | 467 +++++++++ .../programs/ref-deref.smir.json.expected | 445 +++++++++ .../programs/shl_min.smir.json.expected | 489 ++++++++++ .../programs/slice.smir.json.expected | 885 ++++++++++++++++++ .../strange-ref-deref.smir.json.expected | 459 +++++++++ .../programs/struct.smir.json.expected | 467 +++++++++ .../programs/sum-to-n.smir.json.expected | 478 ++++++++++ .../programs/tuple-eq.smir.json.expected | 566 +++++++++++ .../programs/tuples-simple.smir.json.expected | 448 +++++++++ 26 files changed, 12410 insertions(+), 1 deletion(-) diff --git a/tests/integration/normalise-filter.jq b/tests/integration/normalise-filter.jq index 31dd8a2..ea3df11 100644 --- a/tests/integration/normalise-filter.jq +++ b/tests/integration/normalise-filter.jq @@ -19,5 +19,10 @@ ( [ .items[] ] # sort items by symbol name they refer to and by the function name for functions | sort_by(.symbol_name, .mono_item_kind.MonoItemFn.name) + ), + types: + ( [ .types[] ] +# sort types by their ID (int, first in list) + | sort_by(.[0]) ) -} \ No newline at end of file +} diff --git a/tests/integration/programs/assert_eq.smir.json.expected b/tests/integration/programs/assert_eq.smir.json.expected index 3f05024..adf0783 100644 --- a/tests/integration/programs/assert_eq.smir.json.expected +++ b/tests/integration/programs/assert_eq.smir.json.expected @@ -3143,5 +3143,734 @@ }, "symbol_name": "_ZN9assert_eq4main17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 17, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 47, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 48, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 13, + [ + { + "Type": 6 + }, + { + "Type": 37 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 24, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 16, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 14, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 5, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 33, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 12, + [ + { + "Type": 16 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "Adt": [ + 13, + [ + { + "Type": 1 + }, + { + "Type": 45 + } + ] + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 25, + "Not" + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 46, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 16, + "Not" + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 26, + [ + { + "Type": 16 + } + ] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "FnDef": [ + 27, + [ + { + "Type": 16 + } + ] + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "FnDef": [ + 28, + [ + { + "Type": 16 + } + ] + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "FnDef": [ + 5, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 31, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 32, + { + "RigidTy": { + "FnDef": [ + 34, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 33, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 34, + { + "RigidTy": { + "RawPtr": [ + 25, + "Mut" + ] + } + } + ], + [ + 35, + { + "RigidTy": { + "FnDef": [ + 23, + [] + ] + } + } + ], + [ + 36, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 49, + "Not" + ] + } + } + ], + [ + 37, + { + "RigidTy": "Never" + } + ], + [ + 38, + { + "RigidTy": { + "Adt": [ + 10, + [] + ] + } + } + ], + [ + 39, + { + "RigidTy": { + "Adt": [ + 11, + [ + { + "Type": 42 + } + ] + ] + } + } + ], + [ + 40, + { + "RigidTy": "Bool" + } + ], + [ + 41, + { + "RigidTy": { + "FnDef": [ + 7, + [ + { + "Type": 16 + }, + { + "Type": 16 + } + ] + ] + } + } + ], + [ + 42, + { + "RigidTy": { + "Adt": [ + 36, + [ + { + "Lifetime": { + "kind": "ReErased" + } + } + ] + ] + } + } + ], + [ + 43, + { + "RigidTy": { + "Tuple": [ + 16, + 40 + ] + } + } + ], + [ + 44, + { + "RigidTy": { + "Tuple": [ + 25, + 25 + ] + } + } + ], + [ + 45, + { + "RigidTy": { + "Adt": [ + 31, + [] + ] + } + } + ], + [ + 46, + { + "RigidTy": { + "Adt": [ + 32, + [ + { + "Lifetime": { + "kind": "ReErased" + } + } + ] + ] + } + } + ], + [ + 47, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 18, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 19, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 20 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 21 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ], + [ + 49, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 22, + "generic_args": [] + } + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ], + [ + 50, + { + "Param": { + "index": 0, + "name": "T" + } + } + ], + [ + 51, + { + "Param": { + "index": 1, + "name": "E" + } + } + ] ] } diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index 1f81971..0d0d71c 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -9730,5 +9730,492 @@ }, "symbol_name": "_ZN5binop4main17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 10, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 35, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 36, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 11, + [ + { + "Type": 6 + }, + { + "Type": 30 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 20, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 19, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 17, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 16, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 8, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": "Bool" + } + ], + [ + 26, + { + "RigidTy": { + "FnDef": [ + 9, + [] + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 29, + { + "RigidTy": { + "Tuple": [ + 16, + 25 + ] + } + } + ], + [ + 30, + { + "RigidTy": "Never" + } + ], + [ + 31, + { + "RigidTy": { + "FnDef": [ + 6, + [] + ] + } + } + ], + [ + 33, + { + "RigidTy": "Str" + } + ], + [ + 34, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReStatic" + }, + 33, + "Not" + ] + } + } + ], + [ + 35, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 12, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 13, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 14 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 15 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index 7ddca6f..a3baa96 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -1654,5 +1654,442 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 12, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 31, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 32, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 13, + [ + { + "Type": 6 + }, + { + "Type": 28 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 9, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 7, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 10, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": "Char" + } + ], + [ + 26, + { + "RigidTy": { + "FnDef": [ + 11, + [] + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 30, + "Not" + ] + } + } + ], + [ + 28, + { + "RigidTy": "Never" + } + ], + [ + 31, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 14, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 15, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 16 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 17 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index bc1216b..f6be11b 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -1947,5 +1947,536 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 17, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 37, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 38, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 18, + [ + { + "Type": 6 + }, + { + "Type": 31 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 10, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 11, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 13, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 9, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 8, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 15, + [ + { + "Type": 28 + }, + { + "Type": 30 + } + ] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "FnDef": [ + 16, + [] + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 35, + "Not" + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Closure": [ + 7, + [ + { + "Type": 2 + }, + { + "Type": 36 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 28, + "Not" + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "Tuple": [ + 16, + 16 + ] + } + } + ], + [ + 31, + { + "RigidTy": "Never" + } + ], + [ + 32, + { + "RigidTy": "Bool" + } + ], + [ + 33, + { + "RigidTy": { + "Tuple": [ + 16, + 32 + ] + } + } + ], + [ + 36, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 30, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 37, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 19, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 20, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 21 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 22 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index 40b91d8..0cfee18 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -1767,5 +1767,516 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 11, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 33, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 12, + [ + { + "Type": 6 + }, + { + "Type": 31 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 10, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 8, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 17, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 21, + [ + { + "Type": 28 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "FnDef": [ + 22, + [] + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 35, + "Not" + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Closure": [ + 7, + [ + { + "Type": 2 + }, + { + "Type": 36 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 30, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 28, + "Not" + ] + } + } + ], + [ + 31, + { + "RigidTy": "Never" + } + ], + [ + 32, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 13, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 14, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 15 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 16 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ], + [ + 36, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 29 + ], + "safety": "Safe" + } + } + } + } + ] ] } diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index b62c9e7..cc84cf3 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -1910,5 +1910,461 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 8, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 31, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 32, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 9, + [ + { + "Type": 6 + }, + { + "Type": 30 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 16, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 14, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 17, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": "Bool" + } + ], + [ + 26, + { + "RigidTy": { + "Uint": "Usize" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 6, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "FnDef": [ + 21, + [] + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + } + ], + [ + 30, + { + "RigidTy": "Never" + } + ], + [ + 31, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 11, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 13 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index 63a74e7..8b04138 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -2021,5 +2021,442 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 8, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 30, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 31, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 9, + [ + { + "Type": 6 + }, + { + "Type": 28 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 16, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 14, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 17, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 7, + [] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 29, + "Not" + ] + } + } + ], + [ + 27, + { + "RigidTy": "Bool" + } + ], + [ + 28, + { + "RigidTy": "Never" + } + ], + [ + 30, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 11, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 13 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index dbec355..a689ac3 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -1772,5 +1772,464 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 11, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 30, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 31, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 12, + [ + { + "Type": 6 + }, + { + "Type": 29 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 7, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 8, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 10, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 20, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 17, + [] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 16, + "Not" + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 27, + "Not" + ] + } + } + ], + [ + 29, + { + "RigidTy": "Never" + } + ], + [ + 30, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 13, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 14, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 15 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 16 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/enum.smir.json.expected b/tests/integration/programs/enum.smir.json.expected index 50ded05..1e7ccd0 100644 --- a/tests/integration/programs/enum.smir.json.expected +++ b/tests/integration/programs/enum.smir.json.expected @@ -1476,5 +1476,416 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 11, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 26, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 27, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 12, + [ + { + "Type": 6 + }, + { + "Type": 28 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 10, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 8, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 17, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "Adt": [ + 7, + [] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 13, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 14, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 15 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 16 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index 309818f..b5831d8 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -2328,5 +2328,472 @@ }, "symbol_name": "_ZN9fibonacci9fibonacci17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 8, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 33, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 9, + [ + { + "Type": 6 + }, + { + "Type": 31 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 14, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 15, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 17, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": "Bool" + } + ], + [ + 26, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 6, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Tuple": [ + 26, + 25 + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "FnDef": [ + 21, + [] + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 35, + "Not" + ] + } + } + ], + [ + 31, + { + "RigidTy": "Never" + } + ], + [ + 32, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 11, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 13 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index 59bb1d5..44ab9f6 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -2224,5 +2224,478 @@ }, "symbol_name": "_ZN5float4main17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 7, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 31, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 32, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 8, + [ + { + "Type": 6 + }, + { + "Type": 30 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 14, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 15, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 17, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "Float": "F32" + } + } + ], + [ + 26, + { + "RigidTy": { + "Float": "F64" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 13, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + } + ], + [ + 29, + { + "RigidTy": "Bool" + } + ], + [ + 30, + { + "RigidTy": "Never" + } + ], + [ + 31, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 9, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 11 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ], + [ + 33, + { + "RigidTy": "Str" + } + ], + [ + 34, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReStatic" + }, + 33, + "Not" + ] + } + } + ] ] } diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index b7904ca..46e8896 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -2019,5 +2019,442 @@ }, "symbol_name": "_ZN6modulo4main17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 8, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 29, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 30, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 9, + [ + { + "Type": 6 + }, + { + "Type": 28 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 18, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 16, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 7, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 14, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 15, + [] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 27, + { + "RigidTy": "Bool" + } + ], + [ + 28, + { + "RigidTy": "Never" + } + ], + [ + 29, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 11, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 13 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index c6c9511..9fa1009 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -2281,5 +2281,483 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 9, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 34, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 10, + [ + { + "Type": 6 + }, + { + "Type": 32 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 15, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 16, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 18, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 20, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 21, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": "Bool" + } + ], + [ + 26, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 7, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Tuple": [ + 26, + 25 + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "FnDef": [ + 6, + [] + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "FnDef": [ + 19, + [] + ] + } + } + ], + [ + 31, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 35, + "Not" + ] + } + } + ], + [ + 32, + { + "RigidTy": "Never" + } + ], + [ + 33, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 11, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 12, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 13 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 14 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/option-construction.smir.json.expected b/tests/integration/programs/option-construction.smir.json.expected index 4c91367..b196b70 100644 --- a/tests/integration/programs/option-construction.smir.json.expected +++ b/tests/integration/programs/option-construction.smir.json.expected @@ -1812,5 +1812,469 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 12, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 33, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 13, + [ + { + "Type": 6 + }, + { + "Type": 28 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 19, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 21, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 23, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 11, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 10, + [] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 27, + { + "RigidTy": { + "Adt": [ + 8, + [ + { + "Type": 26 + } + ] + ] + } + } + ], + [ + 28, + { + "RigidTy": "Never" + } + ], + [ + 29, + { + "RigidTy": { + "FnDef": [ + 5, + [ + { + "Type": 26 + } + ] + ] + } + } + ], + [ + 30, + { + "Param": { + "index": 0, + "name": "T" + } + } + ], + [ + 32, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 14, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 15, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 16 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 17 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index 4d1cc99..a691768 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -1884,5 +1884,461 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 7, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 31, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 32, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 8, + [ + { + "Type": 6 + }, + { + "Type": 30 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 16, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 17, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 19, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 13, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 15, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": "Bool" + } + ], + [ + 26, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 14, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "Tuple": [ + 26, + 25 + ] + } + } + ], + [ + 30, + { + "RigidTy": "Never" + } + ], + [ + 31, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 9, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 11 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index b419e3e..26feaf3 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -2088,5 +2088,472 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 8, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 33, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 9, + [ + { + "Type": 6 + }, + { + "Type": 31 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 15, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 16, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 18, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 21, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": "Bool" + } + ], + [ + 26, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 6, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Tuple": [ + 26, + 25 + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "FnDef": [ + 14, + [] + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + } + ], + [ + 31, + { + "RigidTy": "Never" + } + ], + [ + 32, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 11, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 13 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index 0537a71..d70e820 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -2088,5 +2088,472 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 8, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 33, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 9, + [ + { + "Type": 6 + }, + { + "Type": 31 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 17, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 15, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 20, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 21, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 26, + { + "RigidTy": "Bool" + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 6, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Tuple": [ + 25, + 26 + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "FnDef": [ + 14, + [] + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + } + ], + [ + 31, + { + "RigidTy": "Never" + } + ], + [ + 32, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 11, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 13 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index 643be03..7e4f170 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -1718,5 +1718,450 @@ }, "symbol_name": "_ZN9ref_deref4main17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 12, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 30, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 31, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 13, + [ + { + "Type": 6 + }, + { + "Type": 28 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 18, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 9, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 7, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 11, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 10, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 20, + [] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 16, + "Not" + ] + } + } + ], + [ + 28, + { + "RigidTy": "Never" + } + ], + [ + 30, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 14, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 15, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 16 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 17 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index b349c56..c949f91 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -3498,5 +3498,494 @@ }, "symbol_name": "_ZN7shl_min4main17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 14, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 35, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 15, + [ + { + "Type": 6 + }, + { + "Type": 32 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 7, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 8, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 10, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 13, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 11, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 26, + { + "RigidTy": { + "Int": "I16" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 20, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 36, + "Not" + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "Int": "I64" + } + } + ], + [ + 30, + { + "RigidTy": { + "Int": "I128" + } + } + ], + [ + 31, + { + "RigidTy": "Bool" + } + ], + [ + 32, + { + "RigidTy": "Never" + } + ], + [ + 34, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 16, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 17, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 18 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 19 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ], + [ + 36, + { + "RigidTy": "Str" + } + ], + [ + 37, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReStatic" + }, + 36, + "Not" + ] + } + } + ] ] } diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index 4bc3772..57dc180 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -4633,5 +4633,890 @@ }, "symbol_name": "_ZN69_$LT$T$u20$as$u20$core..array..equality..SpecArrayEq$LT$U$C$_$GT$$GT$7spec_eq17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "Uint": "Usize" + } + } + ], + [ + 1, + { + "RigidTy": { + "FnDef": [ + 19, + [] + ] + } + } + ], + [ + 2, + { + "RigidTy": { + "RawPtr": [ + 27, + "Not" + ] + } + } + ], + [ + 3, + { + "RigidTy": { + "Slice": 27 + } + } + ], + [ + 4, + { + "RigidTy": { + "FnDef": [ + 20, + [] + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 3, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Adt": [ + 15, + [ + { + "Type": 0 + } + ] + ] + } + } + ], + [ + 7, + { + "RigidTy": "Never" + } + ], + [ + 8, + { + "RigidTy": { + "Adt": [ + 1, + [ + { + "Type": 0 + } + ] + ] + } + } + ], + [ + 9, + { + "RigidTy": "Bool" + } + ], + [ + 10, + { + "RigidTy": { + "RawPtr": [ + 3, + "Not" + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "FnDef": [ + 29, + [] + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 13, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 14, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 12, + 27 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 15, + { + "RigidTy": { + "Tuple": [ + 18 + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 55, + "Not" + ] + } + } + ], + [ + 17, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 18, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 12 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 19, + { + "RigidTy": { + "RawPtr": [ + 56, + "Not" + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 21, + { + "RigidTy": { + "Adt": [ + 9, + [ + { + "Type": 17 + }, + { + "Type": 7 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 23, + "Not" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "Closure": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 13 + }, + { + "Type": 14 + }, + { + "Type": 15 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "FnDef": [ + 4, + [ + { + "Type": 18 + }, + { + "Type": 12 + } + ] + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 22, + [ + { + "Type": 12 + } + ] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Adt": [ + 18, + [] + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 28, + { + "RigidTy": { + "Adt": [ + 16, + [] + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 26, + "Not" + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "FnDef": [ + 5, + [ + { + "Type": 18 + }, + { + "Type": 12 + } + ] + ] + } + } + ], + [ + 31, + { + "RigidTy": { + "FnDef": [ + 21, + [ + { + "Type": 12 + } + ] + ] + } + } + ], + [ + 32, + { + "RigidTy": { + "FnDef": [ + 5, + [ + { + "Type": 23 + }, + { + "Type": 12 + } + ] + ] + } + } + ], + [ + 33, + { + "RigidTy": { + "RawPtr": [ + 23, + "Mut" + ] + } + } + ], + [ + 34, + { + "RigidTy": { + "FnDef": [ + 42, + [ + { + "Type": 23 + }, + { + "Type": 12 + } + ] + ] + } + } + ], + [ + 35, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 23, + "Mut" + ] + } + } + ], + [ + 36, + { + "RigidTy": { + "FnDef": [ + 26, + [ + { + "Type": 3 + }, + { + "Type": 6 + } + ] + ] + } + } + ], + [ + 37, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 52, + "Not" + ] + } + } + ], + [ + 38, + { + "RigidTy": { + "FnDef": [ + 35, + [ + { + "Type": 27 + }, + { + "Type": 27 + }, + { + "Const": { + "id": 0, + "kind": { + "Value": [ + 0, + { + "align": 8, + "bytes": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + ] + } + } + } + ] + ] + } + } + ], + [ + 39, + { + "RigidTy": { + "RawPtr": [ + 53, + "Not" + ] + } + } + ], + [ + 40, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 53, + "Not" + ] + } + } + ], + [ + 41, + { + "RigidTy": { + "Adt": [ + 38, + [] + ] + } + } + ], + [ + 42, + { + "RigidTy": { + "Adt": [ + 1, + [ + { + "Type": 40 + } + ] + ] + } + } + ], + [ + 43, + { + "RigidTy": { + "Adt": [ + 9, + [ + { + "Type": 40 + }, + { + "Type": 41 + } + ] + ] + } + } + ], + [ + 44, + { + "RigidTy": { + "FnDef": [ + 24, + [ + { + "Type": 3 + }, + { + "Type": 53 + } + ] + ] + } + } + ], + [ + 45, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 5, + "Not" + ] + } + } + ], + [ + 46, + { + "RigidTy": { + "FnDef": [ + 41, + [ + { + "Type": 6 + }, + { + "Type": 3 + } + ] + ] + } + } + ], + [ + 47, + { + "RigidTy": { + "FnDef": [ + 25, + [ + { + "Type": 53 + } + ] + ] + } + } + ], + [ + 48, + { + "RigidTy": { + "FnDef": [ + 26, + [ + { + "Type": 52 + }, + { + "Type": 6 + } + ] + ] + } + } + ], + [ + 49, + { + "RigidTy": { + "FnDef": [ + 24, + [ + { + "Type": 5 + }, + { + "Type": 53 + } + ] + ] + } + } + ], + [ + 50, + { + "RigidTy": { + "FnDef": [ + 34, + [] + ] + } + } + ], + [ + 51, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 57, + "Not" + ] + } + } + ], + [ + 52, + { + "RigidTy": { + "Array": [ + 27, + { + "id": 1, + "kind": { + "Value": [ + 0, + { + "align": 8, + "bytes": [ + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + ] + } + } + ] + } + } + ], + [ + 53, + { + "RigidTy": { + "Array": [ + 27, + { + "id": 0, + "kind": { + "Value": [ + 0, + { + "align": 8, + "bytes": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + ] + } + } + ] + } + } + ], + [ + 54, + { + "Param": { + "index": 0, + "name": "Idx" + } + } + ], + [ + 55, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 30, + "generic_args": [ + { + "Type": 12 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 31, + "generic_args": [ + { + "Type": 12 + } + ], + "term": { + "Type": 27 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 32 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 33 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ], + [ + 58, + { + "Param": { + "index": 0, + "name": "T" + } + } + ], + [ + 59, + { + "Param": { + "index": 1, + "name": "E" + } + } + ] ] } diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index d045300..7a89b83 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -1775,5 +1775,464 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 7, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 30, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 31, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 8, + [ + { + "Type": 6 + }, + { + "Type": 29 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 13, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 14, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 16, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 19, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 17, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 20, + [] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 16, + "Not" + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 27, + "Not" + ] + } + } + ], + [ + 29, + { + "RigidTy": "Never" + } + ], + [ + 30, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 9, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 10, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 11 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 12 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index 91ec6a3..96d5837 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -1920,5 +1920,472 @@ }, "symbol_name": "_ZN6struct4main17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 16, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 35, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 17, + [ + { + "Type": 6 + }, + { + "Type": 31 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 14, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 13, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 11, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 9, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 10, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": "Bool" + } + ], + [ + 26, + { + "RigidTy": { + "Uint": "U32" + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 8, + [] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "Adt": [ + 7, + [] + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "Tuple": [ + 26, + 25 + ] + } + } + ], + [ + 31, + { + "RigidTy": "Never" + } + ], + [ + 34, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 18, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 19, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 20 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 21 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index fd8f104..c221424 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -2517,5 +2517,483 @@ }, "symbol_name": "_ZN8sum_to_n8sum_to_n17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 14, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 34, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 15, + [ + { + "Type": 6 + }, + { + "Type": 31 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 10, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 11, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 13, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 9, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 21, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "Uint": "Usize" + } + } + ], + [ + 26, + { + "RigidTy": "Bool" + } + ], + [ + 27, + { + "RigidTy": { + "Tuple": [ + 25, + 26 + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "FnDef": [ + 6, + [] + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "FnDef": [ + 20, + [] + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 35, + "Not" + ] + } + } + ], + [ + 31, + { + "RigidTy": "Never" + } + ], + [ + 32, + { + "RigidTy": { + "FnDef": [ + 7, + [] + ] + } + } + ], + [ + 33, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 16, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 17, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 18 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 19 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index 8340618..8450cf3 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -2593,5 +2593,571 @@ }, "symbol_name": "_ZN8tuple_eq4main17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 12, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 36, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 37, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 13, + [ + { + "Type": 6 + }, + { + "Type": 33 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 21, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 20, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 18, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 4, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 23, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": "Bool" + } + ], + [ + 22, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 16, + "Not" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 4, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 11, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "FnDef": [ + 9, + [ + { + "Type": 16 + }, + { + "Type": 16 + } + ] + ] + } + } + ], + [ + 28, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 29, + { + "RigidTy": { + "FnDef": [ + 9, + [ + { + "Type": 32 + }, + { + "Type": 32 + } + ] + ] + } + } + ], + [ + 30, + { + "RigidTy": { + "FnDef": [ + 10, + [] + ] + } + } + ], + [ + 31, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + } + ], + [ + 32, + { + "RigidTy": { + "Tuple": [ + 16, + 16 + ] + } + } + ], + [ + 33, + { + "RigidTy": "Never" + } + ], + [ + 36, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 14, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 15, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 16 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 17 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ], + [ + 38, + { + "RigidTy": { + "Ref": [ + { + "kind": { + "ReBound": [ + 0, + { + "kind": { + "BrNamed": [ + 24, + "'_" + ] + }, + "var": 0 + } + ] + } + }, + 16, + "Not" + ] + } + } + ], + [ + 39, + { + "RigidTy": { + "Ref": [ + { + "kind": { + "ReBound": [ + 0, + { + "kind": { + "BrNamed": [ + 25, + "'_" + ] + }, + "var": 1 + } + ] + } + }, + 16, + "Not" + ] + } + } + ] ] } diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index e51b2a4..b6240c2 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -1766,5 +1766,453 @@ }, "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" } + ], + "types": [ + [ + 0, + { + "RigidTy": { + "FnDef": [ + 14, + [] + ] + } + } + ], + [ + 1, + { + "RigidTy": { + "Tuple": [] + } + } + ], + [ + 2, + { + "RigidTy": { + "Int": "I8" + } + } + ], + [ + 3, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "RustCall", + "c_variadic": false, + "inputs_and_output": [ + 1, + 16 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 4, + { + "RigidTy": { + "Tuple": [ + 7 + ] + } + } + ], + [ + 5, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + } + ], + [ + 6, + { + "RigidTy": { + "Int": "Isize" + } + } + ], + [ + 7, + { + "RigidTy": { + "FnPtr": { + "bound_vars": [], + "value": { + "abi": "Rust", + "c_variadic": false, + "inputs_and_output": [ + 1 + ], + "safety": "Safe" + } + } + } + } + ], + [ + 8, + { + "RigidTy": { + "RawPtr": [ + 33, + "Not" + ] + } + } + ], + [ + 9, + { + "RigidTy": { + "Uint": "U8" + } + } + ], + [ + 10, + { + "RigidTy": { + "Adt": [ + 15, + [ + { + "Type": 6 + }, + { + "Type": 29 + } + ] + ] + } + } + ], + [ + 11, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Not" + ] + } + } + ], + [ + 12, + { + "RigidTy": { + "Closure": [ + 1, + [ + { + "Type": 1 + }, + { + "Type": 2 + }, + { + "Type": 3 + }, + { + "Type": 4 + } + ] + ] + } + } + ], + [ + 13, + { + "RigidTy": { + "FnDef": [ + 2, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 14, + { + "RigidTy": { + "FnDef": [ + 7, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 15, + { + "RigidTy": { + "Adt": [ + 8, + [] + ] + } + } + ], + [ + 16, + { + "RigidTy": { + "Int": "I32" + } + } + ], + [ + 17, + { + "RigidTy": { + "Adt": [ + 10, + [] + ] + } + } + ], + [ + 18, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 15, + "Not" + ] + } + } + ], + [ + 19, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 7 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 20, + { + "RigidTy": { + "FnDef": [ + 11, + [ + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 21, + { + "RigidTy": { + "FnDef": [ + 3, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 22, + { + "RigidTy": { + "RawPtr": [ + 12, + "Mut" + ] + } + } + ], + [ + 23, + { + "RigidTy": { + "FnDef": [ + 13, + [ + { + "Type": 12 + }, + { + "Type": 1 + } + ] + ] + } + } + ], + [ + 24, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 12, + "Mut" + ] + } + } + ], + [ + 25, + { + "RigidTy": { + "FnDef": [ + 12, + [] + ] + } + } + ], + [ + 26, + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 30, + "Not" + ] + } + } + ], + [ + 27, + { + "RigidTy": { + "Tuple": [ + 16, + 16 + ] + } + } + ], + [ + 28, + { + "RigidTy": "Bool" + } + ], + [ + 29, + { + "RigidTy": "Never" + } + ], + [ + 32, + { + "RigidTy": { + "Dynamic": [ + [ + { + "bound_vars": [], + "value": { + "Trait": { + "def_id": 16, + "generic_args": [ + { + "Type": 1 + } + ] + } + } + }, + { + "bound_vars": [], + "value": { + "Projection": { + "def_id": 17, + "generic_args": [ + { + "Type": 1 + } + ], + "term": { + "Type": 16 + } + } + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 18 + } + }, + { + "bound_vars": [], + "value": { + "AutoTrait": 19 + } + } + ], + { + "kind": "ReErased" + }, + "Dyn" + ] + } + } + ] ] } From e0223b0d941d7b284b213fda4c3dbc8097913d8c Mon Sep 17 00:00:00 2001 From: Guy Repta <50716988+gtrepta@users.noreply.github.com> Date: Wed, 12 Feb 2025 16:04:02 -0600 Subject: [PATCH 3/3] Only include primitive types for now --- src/printer.rs | 1 + .../programs/assert_eq.smir.json.expected | 681 -------------- .../programs/binop.smir.json.expected | 439 --------- .../programs/char-trivial.smir.json.expected | 397 --------- .../programs/closure-args.smir.json.expected | 491 ---------- .../closure-no-args.smir.json.expected | 469 ---------- .../const-arithm-simple.smir.json.expected | 408 --------- .../programs/div.smir.json.expected | 397 --------- .../double-ref-deref.smir.json.expected | 425 --------- .../programs/enum.smir.json.expected | 377 -------- .../programs/fibonacci.smir.json.expected | 419 --------- .../programs/float.smir.json.expected | 417 --------- .../programs/modulo.smir.json.expected | 397 --------- .../mutual_recursion.smir.json.expected | 430 --------- .../option-construction.smir.json.expected | 422 --------- .../primitive-type-bounds.smir.json.expected | 408 --------- .../recursion-simple-match.smir.json.expected | 419 --------- .../recursion-simple.smir.json.expected | 419 --------- .../programs/ref-deref.smir.json.expected | 411 --------- .../programs/shl_min.smir.json.expected | 417 --------- .../programs/slice.smir.json.expected | 837 ------------------ .../strange-ref-deref.smir.json.expected | 425 --------- .../programs/struct.smir.json.expected | 419 --------- .../programs/sum-to-n.smir.json.expected | 430 --------- .../programs/tuple-eq.smir.json.expected | 526 ----------- .../programs/tuples-simple.smir.json.expected | 408 --------- 26 files changed, 1 insertion(+), 11288 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index 16171cf..ef44c3a 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -989,6 +989,7 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { let types = visited_tys .into_iter() .map(|(k, (v, _))| (k, v)) + .filter(|(_, v)| v.is_primitive()) .collect::>(); SmirJson { diff --git a/tests/integration/programs/assert_eq.smir.json.expected b/tests/integration/programs/assert_eq.smir.json.expected index adf0783..f5e2831 100644 --- a/tests/integration/programs/assert_eq.smir.json.expected +++ b/tests/integration/programs/assert_eq.smir.json.expected @@ -3145,25 +3145,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 17, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -3172,49 +3153,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 47, - "Not" - ] - } - } - ], [ 6, { @@ -3223,35 +3161,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 48, - "Not" - ] - } - } - ], [ 9, { @@ -3260,106 +3169,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 13, - [ - { - "Type": 6 - }, - { - "Type": 37 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 24, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 16, - [] - ] - } - } - ], [ 16, { @@ -3368,139 +3177,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 14, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 5, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 33, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 12, - [ - { - "Type": 16 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "Adt": [ - 13, - [ - { - "Type": 1 - }, - { - "Type": 45 - } - ] - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 25, - "Not" - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 46, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 16, - "Not" - ] - } - } - ], [ 26, { @@ -3509,368 +3185,11 @@ } } ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 26, - [ - { - "Type": 16 - } - ] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "FnDef": [ - 27, - [ - { - "Type": 16 - } - ] - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "FnDef": [ - 28, - [ - { - "Type": 16 - } - ] - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "FnDef": [ - 5, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 31, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 32, - { - "RigidTy": { - "FnDef": [ - 34, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 33, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 34, - { - "RigidTy": { - "RawPtr": [ - 25, - "Mut" - ] - } - } - ], - [ - 35, - { - "RigidTy": { - "FnDef": [ - 23, - [] - ] - } - } - ], - [ - 36, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 49, - "Not" - ] - } - } - ], - [ - 37, - { - "RigidTy": "Never" - } - ], - [ - 38, - { - "RigidTy": { - "Adt": [ - 10, - [] - ] - } - } - ], - [ - 39, - { - "RigidTy": { - "Adt": [ - 11, - [ - { - "Type": 42 - } - ] - ] - } - } - ], [ 40, { "RigidTy": "Bool" } - ], - [ - 41, - { - "RigidTy": { - "FnDef": [ - 7, - [ - { - "Type": 16 - }, - { - "Type": 16 - } - ] - ] - } - } - ], - [ - 42, - { - "RigidTy": { - "Adt": [ - 36, - [ - { - "Lifetime": { - "kind": "ReErased" - } - } - ] - ] - } - } - ], - [ - 43, - { - "RigidTy": { - "Tuple": [ - 16, - 40 - ] - } - } - ], - [ - 44, - { - "RigidTy": { - "Tuple": [ - 25, - 25 - ] - } - } - ], - [ - 45, - { - "RigidTy": { - "Adt": [ - 31, - [] - ] - } - } - ], - [ - 46, - { - "RigidTy": { - "Adt": [ - 32, - [ - { - "Lifetime": { - "kind": "ReErased" - } - } - ] - ] - } - } - ], - [ - 47, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 18, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 19, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 20 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 21 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } - ], - [ - 49, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 22, - "generic_args": [] - } - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } - ], - [ - 50, - { - "Param": { - "index": 0, - "name": "T" - } - } - ], - [ - 51, - { - "Param": { - "index": 1, - "name": "E" - } - } ] ] } diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index 0d0d71c..5fa7f54 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -9732,25 +9732,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 10, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -9759,49 +9740,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 35, - "Not" - ] - } - } - ], [ 6, { @@ -9810,35 +9748,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 36, - "Not" - ] - } - } - ], [ 9, { @@ -9847,106 +9756,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 11, - [ - { - "Type": 6 - }, - { - "Type": 30 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 20, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 19, - [] - ] - } - } - ], [ 16, { @@ -9955,156 +9764,12 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 17, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 16, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 8, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { "RigidTy": "Bool" } ], - [ - 26, - { - "RigidTy": { - "FnDef": [ - 9, - [] - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - } - ], [ 28, { @@ -10112,110 +9777,6 @@ "Uint": "U32" } } - ], - [ - 29, - { - "RigidTy": { - "Tuple": [ - 16, - 25 - ] - } - } - ], - [ - 30, - { - "RigidTy": "Never" - } - ], - [ - 31, - { - "RigidTy": { - "FnDef": [ - 6, - [] - ] - } - } - ], - [ - 33, - { - "RigidTy": "Str" - } - ], - [ - 34, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReStatic" - }, - 33, - "Not" - ] - } - } - ], - [ - 35, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 12, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 13, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 14 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 15 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index a3baa96..a61e8ee 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -1656,25 +1656,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 12, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1683,49 +1664,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 31, - "Not" - ] - } - } - ], [ 6, { @@ -1734,35 +1672,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 32, - "Not" - ] - } - } - ], [ 9, { @@ -1771,106 +1680,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 13, - [ - { - "Type": 6 - }, - { - "Type": 28 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 9, - [] - ] - } - } - ], [ 16, { @@ -1879,217 +1688,11 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 7, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 10, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { "RigidTy": "Char" } - ], - [ - 26, - { - "RigidTy": { - "FnDef": [ - 11, - [] - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 30, - "Not" - ] - } - } - ], - [ - 28, - { - "RigidTy": "Never" - } - ], - [ - 31, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 14, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 15, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 16 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 17 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index f6be11b..ec46717 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -1949,25 +1949,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 17, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1976,49 +1957,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 37, - "Not" - ] - } - } - ], [ 6, { @@ -2027,35 +1965,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 38, - "Not" - ] - } - } - ], [ 9, { @@ -2064,106 +1973,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 18, - [ - { - "Type": 6 - }, - { - "Type": 31 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 10, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 11, - [] - ] - } - } - ], [ 16, { @@ -2172,311 +1981,11 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 13, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 9, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 8, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 15, - [ - { - "Type": 28 - }, - { - "Type": 30 - } - ] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "FnDef": [ - 16, - [] - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 35, - "Not" - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Closure": [ - 7, - [ - { - "Type": 2 - }, - { - "Type": 36 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 28, - "Not" - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "Tuple": [ - 16, - 16 - ] - } - } - ], - [ - 31, - { - "RigidTy": "Never" - } - ], [ 32, { "RigidTy": "Bool" } - ], - [ - 33, - { - "RigidTy": { - "Tuple": [ - 16, - 32 - ] - } - } - ], - [ - 36, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 30, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 37, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 19, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 20, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 21 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 22 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index 0cfee18..5d8beb6 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -1769,25 +1769,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 11, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1796,49 +1777,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], [ 6, { @@ -1847,35 +1785,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 33, - "Not" - ] - } - } - ], [ 9, { @@ -1884,106 +1793,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 12, - [ - { - "Type": 6 - }, - { - "Type": 31 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 10, - [] - ] - } - } - ], [ 16, { @@ -1992,189 +1801,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 8, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 17, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 21, - [ - { - "Type": 28 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "FnDef": [ - 22, - [] - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 35, - "Not" - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Closure": [ - 7, - [ - { - "Type": 2 - }, - { - "Type": 36 - }, - { - "Type": 1 - } - ] - ] - } - } - ], [ 29, { @@ -2182,101 +1808,6 @@ "Uint": "U32" } } - ], - [ - 30, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 28, - "Not" - ] - } - } - ], - [ - 31, - { - "RigidTy": "Never" - } - ], - [ - 32, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 13, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 14, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 15 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 16 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } - ], - [ - 36, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 29 - ], - "safety": "Safe" - } - } - } - } ] ] } diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index cc84cf3..9e21ee6 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -1912,25 +1912,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 8, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1939,49 +1920,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 31, - "Not" - ] - } - } - ], [ 6, { @@ -1990,35 +1928,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 32, - "Not" - ] - } - } - ], [ 9, { @@ -2027,106 +1936,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 9, - [ - { - "Type": 6 - }, - { - "Type": 30 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 16, - [] - ] - } - } - ], [ 16, { @@ -2135,125 +1944,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 14, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 17, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2267,104 +1957,6 @@ "Uint": "Usize" } } - ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 6, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "FnDef": [ - 21, - [] - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - } - ], - [ - 30, - { - "RigidTy": "Never" - } - ], - [ - 31, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 11, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 13 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index 8b04138..c456acb 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -2023,25 +2023,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 8, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2050,49 +2031,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 30, - "Not" - ] - } - } - ], [ 6, { @@ -2101,35 +2039,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 31, - "Not" - ] - } - } - ], [ 9, { @@ -2138,106 +2047,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 9, - [ - { - "Type": 6 - }, - { - "Type": 28 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 16, - [] - ] - } - } - ], [ 16, { @@ -2246,217 +2055,11 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 14, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 17, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 7, - [] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 29, - "Not" - ] - } - } - ], [ 27, { "RigidTy": "Bool" } - ], - [ - 28, - { - "RigidTy": "Never" - } - ], - [ - 30, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 11, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 13 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index a689ac3..748b5a7 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -1774,25 +1774,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 11, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1801,49 +1782,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 30, - "Not" - ] - } - } - ], [ 6, { @@ -1852,35 +1790,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 31, - "Not" - ] - } - } - ], [ 9, { @@ -1889,106 +1798,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 12, - [ - { - "Type": 6 - }, - { - "Type": 29 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 7, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 8, - [] - ] - } - } - ], [ 16, { @@ -1996,240 +1805,6 @@ "Int": "I32" } } - ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 10, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 20, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 17, - [] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 16, - "Not" - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 27, - "Not" - ] - } - } - ], - [ - 29, - { - "RigidTy": "Never" - } - ], - [ - 30, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 13, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 14, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 15 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 16 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/enum.smir.json.expected b/tests/integration/programs/enum.smir.json.expected index 1e7ccd0..0e01807 100644 --- a/tests/integration/programs/enum.smir.json.expected +++ b/tests/integration/programs/enum.smir.json.expected @@ -1478,25 +1478,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 11, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1505,49 +1486,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 26, - "Not" - ] - } - } - ], [ 6, { @@ -1556,35 +1494,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 27, - "Not" - ] - } - } - ], [ 9, { @@ -1593,106 +1502,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 12, - [ - { - "Type": 6 - }, - { - "Type": 28 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 10, - [] - ] - } - } - ], [ 16, { @@ -1700,192 +1509,6 @@ "Int": "I32" } } - ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 8, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 17, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "Adt": [ - 7, - [] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 13, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 14, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 15 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 16 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index b5831d8..7c04374 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -2330,25 +2330,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 8, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2357,49 +2338,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], [ 6, { @@ -2408,35 +2346,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 33, - "Not" - ] - } - } - ], [ 9, { @@ -2445,106 +2354,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 9, - [ - { - "Type": 6 - }, - { - "Type": 31 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 14, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 15, - [] - ] - } - } - ], [ 16, { @@ -2553,125 +2362,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 17, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2685,115 +2375,6 @@ "Uint": "U32" } } - ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 6, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Tuple": [ - 26, - 25 - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "FnDef": [ - 21, - [] - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 35, - "Not" - ] - } - } - ], - [ - 31, - { - "RigidTy": "Never" - } - ], - [ - 32, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 11, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 13 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index 44ab9f6..a42cdf4 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -2226,25 +2226,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 7, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2253,49 +2234,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 31, - "Not" - ] - } - } - ], [ 6, { @@ -2304,35 +2242,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 32, - "Not" - ] - } - } - ], [ 9, { @@ -2341,106 +2250,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 8, - [ - { - "Type": 6 - }, - { - "Type": 30 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 14, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 15, - [] - ] - } - } - ], [ 16, { @@ -2449,125 +2258,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 17, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2584,118 +2274,11 @@ } } ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 13, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - } - ], [ 29, { "RigidTy": "Bool" } - ], - [ - 30, - { - "RigidTy": "Never" - } - ], - [ - 31, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 9, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 11 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } - ], - [ - 33, - { - "RigidTy": "Str" - } - ], - [ - 34, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReStatic" - }, - 33, - "Not" - ] - } - } ] ] } diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index 46e8896..27ef784 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -2021,25 +2021,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 8, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2048,49 +2029,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 29, - "Not" - ] - } - } - ], [ 6, { @@ -2099,35 +2037,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 30, - "Not" - ] - } - } - ], [ 9, { @@ -2136,106 +2045,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 9, - [ - { - "Type": 6 - }, - { - "Type": 28 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 18, - [] - ] - } - } - ], [ 16, { @@ -2244,217 +2053,11 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 16, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 7, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 14, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 15, - [] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], [ 27, { "RigidTy": "Bool" } - ], - [ - 28, - { - "RigidTy": "Never" - } - ], - [ - 29, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 11, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 13 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index 9fa1009..e12f05b 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -2283,25 +2283,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 9, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2310,49 +2291,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - } - ], [ 6, { @@ -2361,35 +2299,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 34, - "Not" - ] - } - } - ], [ 9, { @@ -2398,106 +2307,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 10, - [ - { - "Type": 6 - }, - { - "Type": 32 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 15, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 16, - [] - ] - } - } - ], [ 16, { @@ -2506,125 +2315,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 18, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 20, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 21, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2638,126 +2328,6 @@ "Uint": "U32" } } - ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 7, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Tuple": [ - 26, - 25 - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "FnDef": [ - 6, - [] - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "FnDef": [ - 19, - [] - ] - } - } - ], - [ - 31, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 35, - "Not" - ] - } - } - ], - [ - 32, - { - "RigidTy": "Never" - } - ], - [ - 33, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 11, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 12, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 13 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 14 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/option-construction.smir.json.expected b/tests/integration/programs/option-construction.smir.json.expected index b196b70..0a2d5bb 100644 --- a/tests/integration/programs/option-construction.smir.json.expected +++ b/tests/integration/programs/option-construction.smir.json.expected @@ -1814,25 +1814,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 12, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1841,49 +1822,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], [ 6, { @@ -1892,35 +1830,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 33, - "Not" - ] - } - } - ], [ 9, { @@ -1929,106 +1838,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 13, - [ - { - "Type": 6 - }, - { - "Type": 28 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 19, - [] - ] - } - } - ], [ 16, { @@ -2037,136 +1846,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 21, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 23, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 11, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 10, - [] - ] - } - } - ], [ 26, { @@ -2174,107 +1853,6 @@ "Uint": "U32" } } - ], - [ - 27, - { - "RigidTy": { - "Adt": [ - 8, - [ - { - "Type": 26 - } - ] - ] - } - } - ], - [ - 28, - { - "RigidTy": "Never" - } - ], - [ - 29, - { - "RigidTy": { - "FnDef": [ - 5, - [ - { - "Type": 26 - } - ] - ] - } - } - ], - [ - 30, - { - "Param": { - "index": 0, - "name": "T" - } - } - ], - [ - 32, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 14, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 15, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 16 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 17 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index a691768..273b406 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -1886,25 +1886,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 7, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1913,49 +1894,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 31, - "Not" - ] - } - } - ], [ 6, { @@ -1964,35 +1902,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 32, - "Not" - ] - } - } - ], [ 9, { @@ -2001,106 +1910,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 8, - [ - { - "Type": 6 - }, - { - "Type": 30 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 16, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 17, - [] - ] - } - } - ], [ 16, { @@ -2109,125 +1918,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 19, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 13, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 15, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2241,104 +1931,6 @@ "Uint": "U32" } } - ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 14, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "Tuple": [ - 26, - 25 - ] - } - } - ], - [ - 30, - { - "RigidTy": "Never" - } - ], - [ - 31, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 9, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 11 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index 26feaf3..088cb24 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -2090,25 +2090,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 8, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2117,49 +2098,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], [ 6, { @@ -2168,35 +2106,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 33, - "Not" - ] - } - } - ], [ 9, { @@ -2205,106 +2114,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 9, - [ - { - "Type": 6 - }, - { - "Type": 31 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 15, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 16, - [] - ] - } - } - ], [ 16, { @@ -2313,125 +2122,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 18, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 21, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2445,115 +2135,6 @@ "Uint": "U32" } } - ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 6, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Tuple": [ - 26, - 25 - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "FnDef": [ - 14, - [] - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - } - ], - [ - 31, - { - "RigidTy": "Never" - } - ], - [ - 32, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 11, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 13 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index d70e820..83cec89 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -2090,25 +2090,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 8, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2117,49 +2098,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], [ 6, { @@ -2168,35 +2106,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 33, - "Not" - ] - } - } - ], [ 9, { @@ -2205,106 +2114,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 9, - [ - { - "Type": 6 - }, - { - "Type": 31 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 17, - [] - ] - } - } - ], [ 16, { @@ -2313,125 +2122,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 15, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 20, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 21, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2445,115 +2135,6 @@ { "RigidTy": "Bool" } - ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 6, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Tuple": [ - 25, - 26 - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "FnDef": [ - 14, - [] - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - } - ], - [ - 31, - { - "RigidTy": "Never" - } - ], - [ - 32, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 11, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 13 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index 7e4f170..b3ae238 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -1720,25 +1720,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 12, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1747,49 +1728,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 30, - "Not" - ] - } - } - ], [ 6, { @@ -1798,35 +1736,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 31, - "Not" - ] - } - } - ], [ 9, { @@ -1835,106 +1744,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 13, - [ - { - "Type": 6 - }, - { - "Type": 28 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 18, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 9, - [] - ] - } - } - ], [ 16, { @@ -1942,226 +1751,6 @@ "Int": "I32" } } - ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 7, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 11, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 10, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 20, - [] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 16, - "Not" - ] - } - } - ], - [ - 28, - { - "RigidTy": "Never" - } - ], - [ - 30, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 14, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 15, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 16 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 17 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index c949f91..134db1d 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -3500,25 +3500,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 14, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -3527,49 +3508,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - } - ], [ 6, { @@ -3578,35 +3516,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 35, - "Not" - ] - } - } - ], [ 9, { @@ -3615,106 +3524,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 15, - [ - { - "Type": 6 - }, - { - "Type": 32 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 7, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 8, - [] - ] - } - } - ], [ 16, { @@ -3723,125 +3532,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 10, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 13, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 11, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -3858,31 +3548,6 @@ } } ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 20, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 36, - "Not" - ] - } - } - ], [ 29, { @@ -3904,88 +3569,6 @@ { "RigidTy": "Bool" } - ], - [ - 32, - { - "RigidTy": "Never" - } - ], - [ - 34, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 16, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 17, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 18 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 19 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } - ], - [ - 36, - { - "RigidTy": "Str" - } - ], - [ - 37, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReStatic" - }, - 36, - "Not" - ] - } - } ] ] } diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index 57dc180..8c7044c 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -4643,133 +4643,12 @@ } } ], - [ - 1, - { - "RigidTy": { - "FnDef": [ - 19, - [] - ] - } - } - ], - [ - 2, - { - "RigidTy": { - "RawPtr": [ - 27, - "Not" - ] - } - } - ], - [ - 3, - { - "RigidTy": { - "Slice": 27 - } - } - ], - [ - 4, - { - "RigidTy": { - "FnDef": [ - 20, - [] - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 3, - "Not" - ] - } - } - ], - [ - 6, - { - "RigidTy": { - "Adt": [ - 15, - [ - { - "Type": 0 - } - ] - ] - } - } - ], - [ - 7, - { - "RigidTy": "Never" - } - ], - [ - 8, - { - "RigidTy": { - "Adt": [ - 1, - [ - { - "Type": 0 - } - ] - ] - } - } - ], [ 9, { "RigidTy": "Bool" } ], - [ - 10, - { - "RigidTy": { - "RawPtr": [ - 3, - "Not" - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "FnDef": [ - 29, - [] - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 13, { @@ -4778,49 +4657,6 @@ } } ], - [ - 14, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 12, - 27 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 15, - { - "RigidTy": { - "Tuple": [ - 18 - ] - } - } - ], - [ - 16, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 55, - "Not" - ] - } - } - ], [ 17, { @@ -4829,35 +4665,6 @@ } } ], - [ - 18, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 12 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 19, - { - "RigidTy": { - "RawPtr": [ - 56, - "Not" - ] - } - } - ], [ 20, { @@ -4866,106 +4673,6 @@ } } ], - [ - 21, - { - "RigidTy": { - "Adt": [ - 9, - [ - { - "Type": 17 - }, - { - "Type": 7 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 23, - "Not" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "Closure": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 13 - }, - { - "Type": 14 - }, - { - "Type": 15 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "FnDef": [ - 4, - [ - { - "Type": 18 - }, - { - "Type": 12 - } - ] - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 22, - [ - { - "Type": 12 - } - ] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Adt": [ - 18, - [] - ] - } - } - ], [ 27, { @@ -4973,550 +4680,6 @@ "Int": "I32" } } - ], - [ - 28, - { - "RigidTy": { - "Adt": [ - 16, - [] - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 26, - "Not" - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "FnDef": [ - 5, - [ - { - "Type": 18 - }, - { - "Type": 12 - } - ] - ] - } - } - ], - [ - 31, - { - "RigidTy": { - "FnDef": [ - 21, - [ - { - "Type": 12 - } - ] - ] - } - } - ], - [ - 32, - { - "RigidTy": { - "FnDef": [ - 5, - [ - { - "Type": 23 - }, - { - "Type": 12 - } - ] - ] - } - } - ], - [ - 33, - { - "RigidTy": { - "RawPtr": [ - 23, - "Mut" - ] - } - } - ], - [ - 34, - { - "RigidTy": { - "FnDef": [ - 42, - [ - { - "Type": 23 - }, - { - "Type": 12 - } - ] - ] - } - } - ], - [ - 35, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 23, - "Mut" - ] - } - } - ], - [ - 36, - { - "RigidTy": { - "FnDef": [ - 26, - [ - { - "Type": 3 - }, - { - "Type": 6 - } - ] - ] - } - } - ], - [ - 37, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 52, - "Not" - ] - } - } - ], - [ - 38, - { - "RigidTy": { - "FnDef": [ - 35, - [ - { - "Type": 27 - }, - { - "Type": 27 - }, - { - "Const": { - "id": 0, - "kind": { - "Value": [ - 0, - { - "align": 8, - "bytes": [ - 2, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "mutability": "Mut", - "provenance": { - "ptrs": [] - } - } - ] - } - } - } - ] - ] - } - } - ], - [ - 39, - { - "RigidTy": { - "RawPtr": [ - 53, - "Not" - ] - } - } - ], - [ - 40, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 53, - "Not" - ] - } - } - ], - [ - 41, - { - "RigidTy": { - "Adt": [ - 38, - [] - ] - } - } - ], - [ - 42, - { - "RigidTy": { - "Adt": [ - 1, - [ - { - "Type": 40 - } - ] - ] - } - } - ], - [ - 43, - { - "RigidTy": { - "Adt": [ - 9, - [ - { - "Type": 40 - }, - { - "Type": 41 - } - ] - ] - } - } - ], - [ - 44, - { - "RigidTy": { - "FnDef": [ - 24, - [ - { - "Type": 3 - }, - { - "Type": 53 - } - ] - ] - } - } - ], - [ - 45, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 5, - "Not" - ] - } - } - ], - [ - 46, - { - "RigidTy": { - "FnDef": [ - 41, - [ - { - "Type": 6 - }, - { - "Type": 3 - } - ] - ] - } - } - ], - [ - 47, - { - "RigidTy": { - "FnDef": [ - 25, - [ - { - "Type": 53 - } - ] - ] - } - } - ], - [ - 48, - { - "RigidTy": { - "FnDef": [ - 26, - [ - { - "Type": 52 - }, - { - "Type": 6 - } - ] - ] - } - } - ], - [ - 49, - { - "RigidTy": { - "FnDef": [ - 24, - [ - { - "Type": 5 - }, - { - "Type": 53 - } - ] - ] - } - } - ], - [ - 50, - { - "RigidTy": { - "FnDef": [ - 34, - [] - ] - } - } - ], - [ - 51, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 57, - "Not" - ] - } - } - ], - [ - 52, - { - "RigidTy": { - "Array": [ - 27, - { - "id": 1, - "kind": { - "Value": [ - 0, - { - "align": 8, - "bytes": [ - 4, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "mutability": "Mut", - "provenance": { - "ptrs": [] - } - } - ] - } - } - ] - } - } - ], - [ - 53, - { - "RigidTy": { - "Array": [ - 27, - { - "id": 0, - "kind": { - "Value": [ - 0, - { - "align": 8, - "bytes": [ - 2, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "mutability": "Mut", - "provenance": { - "ptrs": [] - } - } - ] - } - } - ] - } - } - ], - [ - 54, - { - "Param": { - "index": 0, - "name": "Idx" - } - } - ], - [ - 55, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 30, - "generic_args": [ - { - "Type": 12 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 31, - "generic_args": [ - { - "Type": 12 - } - ], - "term": { - "Type": 27 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 32 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 33 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } - ], - [ - 58, - { - "Param": { - "index": 0, - "name": "T" - } - } - ], - [ - 59, - { - "Param": { - "index": 1, - "name": "E" - } - } ] ] } diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index 7a89b83..2274ab8 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -1777,25 +1777,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 7, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1804,49 +1785,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 30, - "Not" - ] - } - } - ], [ 6, { @@ -1855,35 +1793,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 31, - "Not" - ] - } - } - ], [ 9, { @@ -1892,106 +1801,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 8, - [ - { - "Type": 6 - }, - { - "Type": 29 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 13, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 14, - [] - ] - } - } - ], [ 16, { @@ -1999,240 +1808,6 @@ "Int": "I32" } } - ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 16, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 19, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 17, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 20, - [] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 16, - "Not" - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 27, - "Not" - ] - } - } - ], - [ - 29, - { - "RigidTy": "Never" - } - ], - [ - 30, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 9, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 10, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 11 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 12 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index 96d5837..bfcb64f 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -1922,25 +1922,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 16, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1949,49 +1930,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - } - ], [ 6, { @@ -2000,35 +1938,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 35, - "Not" - ] - } - } - ], [ 9, { @@ -2037,106 +1946,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 17, - [ - { - "Type": 6 - }, - { - "Type": 31 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 14, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 13, - [] - ] - } - } - ], [ 16, { @@ -2145,125 +1954,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 11, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 9, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 10, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2277,115 +1967,6 @@ "Uint": "U32" } } - ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 8, - [] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "Adt": [ - 7, - [] - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "Tuple": [ - 26, - 25 - ] - } - } - ], - [ - 31, - { - "RigidTy": "Never" - } - ], - [ - 34, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 18, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 19, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 20 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 21 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index c221424..e9d2484 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -2519,25 +2519,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 14, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2546,49 +2527,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - } - ], [ 6, { @@ -2597,35 +2535,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 34, - "Not" - ] - } - } - ], [ 9, { @@ -2634,106 +2543,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 15, - [ - { - "Type": 6 - }, - { - "Type": 31 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 10, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 11, - [] - ] - } - } - ], [ 16, { @@ -2742,125 +2551,6 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 13, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 9, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 21, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], [ 25, { @@ -2874,126 +2564,6 @@ { "RigidTy": "Bool" } - ], - [ - 27, - { - "RigidTy": { - "Tuple": [ - 25, - 26 - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "FnDef": [ - 6, - [] - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "FnDef": [ - 20, - [] - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 35, - "Not" - ] - } - } - ], - [ - 31, - { - "RigidTy": "Never" - } - ], - [ - 32, - { - "RigidTy": { - "FnDef": [ - 7, - [] - ] - } - } - ], - [ - 33, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 16, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 17, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 18 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 19 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] } diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index 8450cf3..5504a28 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -2595,25 +2595,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 12, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -2622,49 +2603,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 36, - "Not" - ] - } - } - ], [ 6, { @@ -2673,35 +2611,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 37, - "Not" - ] - } - } - ], [ 9, { @@ -2710,106 +2619,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 13, - [ - { - "Type": 6 - }, - { - "Type": 33 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 21, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 20, - [] - ] - } - } - ], [ 16, { @@ -2818,346 +2627,11 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 18, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 4, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 23, - [ - { - "Type": 1 - } - ] - ] - } - } - ], [ 21, { "RigidTy": "Bool" } - ], - [ - 22, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 16, - "Not" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 4, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 11, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "FnDef": [ - 9, - [ - { - "Type": 16 - }, - { - "Type": 16 - } - ] - ] - } - } - ], - [ - 28, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], - [ - 29, - { - "RigidTy": { - "FnDef": [ - 9, - [ - { - "Type": 32 - }, - { - "Type": 32 - } - ] - ] - } - } - ], - [ - 30, - { - "RigidTy": { - "FnDef": [ - 10, - [] - ] - } - } - ], - [ - 31, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - } - ], - [ - 32, - { - "RigidTy": { - "Tuple": [ - 16, - 16 - ] - } - } - ], - [ - 33, - { - "RigidTy": "Never" - } - ], - [ - 36, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 14, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 15, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 16 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 17 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } - ], - [ - 38, - { - "RigidTy": { - "Ref": [ - { - "kind": { - "ReBound": [ - 0, - { - "kind": { - "BrNamed": [ - 24, - "'_" - ] - }, - "var": 0 - } - ] - } - }, - 16, - "Not" - ] - } - } - ], - [ - 39, - { - "RigidTy": { - "Ref": [ - { - "kind": { - "ReBound": [ - 0, - { - "kind": { - "BrNamed": [ - 25, - "'_" - ] - }, - "var": 1 - } - ] - } - }, - 16, - "Not" - ] - } - } ] ] } diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index b6240c2..16e52e0 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -1768,25 +1768,6 @@ } ], "types": [ - [ - 0, - { - "RigidTy": { - "FnDef": [ - 14, - [] - ] - } - } - ], - [ - 1, - { - "RigidTy": { - "Tuple": [] - } - } - ], [ 2, { @@ -1795,49 +1776,6 @@ } } ], - [ - 3, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "RustCall", - "c_variadic": false, - "inputs_and_output": [ - 1, - 16 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 4, - { - "RigidTy": { - "Tuple": [ - 7 - ] - } - } - ], - [ - 5, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - } - ], [ 6, { @@ -1846,35 +1784,6 @@ } } ], - [ - 7, - { - "RigidTy": { - "FnPtr": { - "bound_vars": [], - "value": { - "abi": "Rust", - "c_variadic": false, - "inputs_and_output": [ - 1 - ], - "safety": "Safe" - } - } - } - } - ], - [ - 8, - { - "RigidTy": { - "RawPtr": [ - 33, - "Not" - ] - } - } - ], [ 9, { @@ -1883,106 +1792,6 @@ } } ], - [ - 10, - { - "RigidTy": { - "Adt": [ - 15, - [ - { - "Type": 6 - }, - { - "Type": 29 - } - ] - ] - } - } - ], - [ - 11, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Not" - ] - } - } - ], - [ - 12, - { - "RigidTy": { - "Closure": [ - 1, - [ - { - "Type": 1 - }, - { - "Type": 2 - }, - { - "Type": 3 - }, - { - "Type": 4 - } - ] - ] - } - } - ], - [ - 13, - { - "RigidTy": { - "FnDef": [ - 2, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 14, - { - "RigidTy": { - "FnDef": [ - 7, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 15, - { - "RigidTy": { - "Adt": [ - 8, - [] - ] - } - } - ], [ 16, { @@ -1991,228 +1800,11 @@ } } ], - [ - 17, - { - "RigidTy": { - "Adt": [ - 10, - [] - ] - } - } - ], - [ - 18, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 15, - "Not" - ] - } - } - ], - [ - 19, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 7 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 20, - { - "RigidTy": { - "FnDef": [ - 11, - [ - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 21, - { - "RigidTy": { - "FnDef": [ - 3, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 22, - { - "RigidTy": { - "RawPtr": [ - 12, - "Mut" - ] - } - } - ], - [ - 23, - { - "RigidTy": { - "FnDef": [ - 13, - [ - { - "Type": 12 - }, - { - "Type": 1 - } - ] - ] - } - } - ], - [ - 24, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 12, - "Mut" - ] - } - } - ], - [ - 25, - { - "RigidTy": { - "FnDef": [ - 12, - [] - ] - } - } - ], - [ - 26, - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 30, - "Not" - ] - } - } - ], - [ - 27, - { - "RigidTy": { - "Tuple": [ - 16, - 16 - ] - } - } - ], [ 28, { "RigidTy": "Bool" } - ], - [ - 29, - { - "RigidTy": "Never" - } - ], - [ - 32, - { - "RigidTy": { - "Dynamic": [ - [ - { - "bound_vars": [], - "value": { - "Trait": { - "def_id": 16, - "generic_args": [ - { - "Type": 1 - } - ] - } - } - }, - { - "bound_vars": [], - "value": { - "Projection": { - "def_id": 17, - "generic_args": [ - { - "Type": 1 - } - ], - "term": { - "Type": 16 - } - } - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 18 - } - }, - { - "bound_vars": [], - "value": { - "AutoTrait": 19 - } - } - ], - { - "kind": "ReErased" - }, - "Dyn" - ] - } - } ] ] }