From c39c46c116b7f9e8cd46e83317a7b4da6d2ffc44 Mon Sep 17 00:00:00 2001 From: cds-amal Date: Tue, 10 Mar 2026 18:29:41 -0400 Subject: [PATCH 1/3] feat(compat): handle IndexedVal trait becoming pub(crate) (nightly-2025-07-05) --- src/compat/indexed_val.rs | 216 +++++++++++++++++++++++++++++++++++++ src/compat/mod.rs | 1 + src/mk_graph/context.rs | 7 +- src/mk_graph/index.rs | 13 +-- src/mk_graph/util.rs | 7 +- src/printer/collect.rs | 6 +- src/printer/mir_visitor.rs | 7 +- src/printer/types.rs | 8 +- 8 files changed, 244 insertions(+), 21 deletions(-) create mode 100644 src/compat/indexed_val.rs diff --git a/src/compat/indexed_val.rs b/src/compat/indexed_val.rs new file mode 100644 index 00000000..5782d912 --- /dev/null +++ b/src/compat/indexed_val.rs @@ -0,0 +1,216 @@ +//! Compat shim for `IndexedVal::to_index()` and `IndexedVal::to_val()`. +//! +//! In nightlies < 2025-07-05 (commit-date < 2025-07-04), `IndexedVal` is a +//! public trait on `stable_mir::ty` providing `to_index(&self) -> usize` and +//! `to_val(usize) -> Self`. In later nightlies the trait became `pub(crate)`, +//! so external code can no longer call these methods. +//! +//! This module provides free functions `to_index` and `to_val` that work on +//! both sides of the breakpoint: +//! +//! - **Old nightlies**: delegate to the trait methods directly. +//! - **New nightlies**: extract the inner `usize` via a minimal serde +//! `Serializer` (for `to_index`), or construct the newtype via `transmute` +//! with a compile-time size assertion (for `to_val`). +//! +//! All affected types (`Ty`, `Span`, `AllocId`, `VariantIdx`, etc.) are +//! single-field newtypes around `usize` with `#[derive(Serialize)]`. + +use super::stable_mir; + +// ---- Old nightlies: IndexedVal is public, just delegate ---- + +#[cfg(not(smir_no_indexed_val))] +pub use stable_mir::ty::IndexedVal; + +#[cfg(not(smir_no_indexed_val))] +pub fn to_index(val: &T) -> usize { + val.to_index() +} + +#[cfg(not(smir_no_indexed_val))] +pub fn to_val(index: usize) -> T { + T::to_val(index) +} + +// ---- New nightlies: IndexedVal is pub(crate), use serde/transmute ---- + +#[cfg(smir_no_indexed_val)] +pub fn to_index(val: &T) -> usize { + super::serde::Serialize::serialize(val, UsizeExtractor) + .expect("to_index: type did not serialize as a usize newtype") +} + +#[cfg(smir_no_indexed_val)] +pub fn to_val(index: usize) -> T { + // These types are #[derive(Serialize, Copy, Clone)] newtypes around usize. + // A single-field struct has the same layout as its field. + assert!( + std::mem::size_of::() == std::mem::size_of::(), + "to_val: type is not usize-sized" + ); + unsafe { std::mem::transmute_copy(&index) } +} + +// Minimal Serializer that extracts a usize from a newtype(usize) chain. +#[cfg(smir_no_indexed_val)] +struct UsizeExtractor; + +#[cfg(smir_no_indexed_val)] +impl super::serde::Serializer for UsizeExtractor { + type Ok = usize; + type Error = UsizeExtractError; + type SerializeSeq = super::serde::ser::Impossible; + type SerializeTuple = super::serde::ser::Impossible; + type SerializeTupleStruct = super::serde::ser::Impossible; + type SerializeTupleVariant = super::serde::ser::Impossible; + type SerializeMap = super::serde::ser::Impossible; + type SerializeStruct = super::serde::ser::Impossible; + type SerializeStructVariant = super::serde::ser::Impossible; + + fn serialize_newtype_struct( + self, + _name: &'static str, + value: &T, + ) -> Result { + // Recurse: the inner value should serialize as u64/usize. + value.serialize(UsizeExtractor) + } + + fn serialize_u64(self, v: u64) -> Result { + Ok(v as usize) + } + + // All other methods are unsupported; the types we care about only hit + // serialize_newtype_struct -> serialize_u64. + fn serialize_bool(self, _: bool) -> Result { + Err(UsizeExtractError) + } + fn serialize_i8(self, _: i8) -> Result { + Err(UsizeExtractError) + } + fn serialize_i16(self, _: i16) -> Result { + Err(UsizeExtractError) + } + fn serialize_i32(self, _: i32) -> Result { + Err(UsizeExtractError) + } + fn serialize_i64(self, _: i64) -> Result { + Err(UsizeExtractError) + } + fn serialize_u8(self, _: u8) -> Result { + Err(UsizeExtractError) + } + fn serialize_u16(self, _: u16) -> Result { + Err(UsizeExtractError) + } + fn serialize_u32(self, _: u32) -> Result { + Err(UsizeExtractError) + } + fn serialize_f32(self, _: f32) -> Result { + Err(UsizeExtractError) + } + fn serialize_f64(self, _: f64) -> Result { + Err(UsizeExtractError) + } + fn serialize_char(self, _: char) -> Result { + Err(UsizeExtractError) + } + fn serialize_str(self, _: &str) -> Result { + Err(UsizeExtractError) + } + fn serialize_bytes(self, _: &[u8]) -> Result { + Err(UsizeExtractError) + } + fn serialize_none(self) -> Result { + Err(UsizeExtractError) + } + fn serialize_some(self, _: &T) -> Result { + Err(UsizeExtractError) + } + fn serialize_unit(self) -> Result { + Err(UsizeExtractError) + } + fn serialize_unit_struct(self, _: &'static str) -> Result { + Err(UsizeExtractError) + } + fn serialize_unit_variant( + self, + _: &'static str, + _: u32, + _: &'static str, + ) -> Result { + Err(UsizeExtractError) + } + fn serialize_newtype_variant( + self, + _: &'static str, + _: u32, + _: &'static str, + _: &T, + ) -> Result { + Err(UsizeExtractError) + } + fn serialize_seq(self, _: Option) -> Result { + Err(UsizeExtractError) + } + fn serialize_tuple(self, _: usize) -> Result { + Err(UsizeExtractError) + } + fn serialize_tuple_struct( + self, + _: &'static str, + _: usize, + ) -> Result { + Err(UsizeExtractError) + } + fn serialize_tuple_variant( + self, + _: &'static str, + _: u32, + _: &'static str, + _: usize, + ) -> Result { + Err(UsizeExtractError) + } + fn serialize_map(self, _: Option) -> Result { + Err(UsizeExtractError) + } + fn serialize_struct( + self, + _: &'static str, + _: usize, + ) -> Result { + Err(UsizeExtractError) + } + fn serialize_struct_variant( + self, + _: &'static str, + _: u32, + _: &'static str, + _: usize, + ) -> Result { + Err(UsizeExtractError) + } +} + +#[cfg(smir_no_indexed_val)] +#[derive(Debug)] +struct UsizeExtractError; + +#[cfg(smir_no_indexed_val)] +impl std::fmt::Display for UsizeExtractError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "type did not serialize as a usize newtype") + } +} + +#[cfg(smir_no_indexed_val)] +impl std::error::Error for UsizeExtractError {} + +#[cfg(smir_no_indexed_val)] +impl super::serde::ser::Error for UsizeExtractError { + fn custom(_msg: T) -> Self { + UsizeExtractError + } +} diff --git a/src/compat/mod.rs b/src/compat/mod.rs index cd5ab18b..bda95ee8 100644 --- a/src/compat/mod.rs +++ b/src/compat/mod.rs @@ -52,6 +52,7 @@ pub use rustc_smir::rustc_internal::internal; pub use rustc_span::def_id::DefId; pub mod bridge; +pub mod indexed_val; pub mod mono_collect; pub mod output; pub mod spans; diff --git a/src/mk_graph/context.rs b/src/mk_graph/context.rs index aec1afca..69acc6db 100644 --- a/src/mk_graph/context.rs +++ b/src/mk_graph/context.rs @@ -9,7 +9,8 @@ use stable_mir::mir::{ BorrowKind, ConstOperand, NonDivergingIntrinsic, Operand, Rvalue, Statement, StatementKind, Terminator, TerminatorKind, }; -use stable_mir::ty::{ConstantKind, IndexedVal, MirConst, Ty}; +use stable_mir::ty::{ConstantKind, MirConst, Ty}; +use crate::compat::indexed_val::to_index; use crate::printer::SmirJson; @@ -57,7 +58,7 @@ impl GraphContext { .provenance .ptrs .iter() - .map(|(_offset, prov)| self.allocs.describe(prov.0.to_index() as u64)) + .map(|(_offset, prov)| self.allocs.describe(to_index(&prov.0) as u64)) .collect(); format!("const [{}]", alloc_refs.join(", ")) } else { @@ -141,7 +142,7 @@ impl GraphContext { } => format!( "set discriminant {}({})", place.label(), - variant_index.to_index() + to_index(variant_index) ), Deinit(p) => format!("Deinit {}", p.label()), StorageLive(l) => format!("Storage Live _{}", &l), diff --git a/src/mk_graph/index.rs b/src/mk_graph/index.rs index 54bf0846..fd7684f2 100644 --- a/src/mk_graph/index.rs +++ b/src/mk_graph/index.rs @@ -5,7 +5,8 @@ use std::collections::HashMap; use crate::compat::stable_mir; use stable_mir::abi::{FieldsShape, LayoutShape}; use stable_mir::mir::alloc::GlobalAlloc; -use stable_mir::ty::{IndexedVal, Ty}; +use stable_mir::ty::Ty; +use crate::compat::indexed_val::to_index; use stable_mir::CrateDef; use crate::printer::{AllocInfo, TypeMetadata}; @@ -151,7 +152,7 @@ impl AllocIndex { impl AllocEntry { pub fn from_alloc_info(info: &AllocInfo, type_index: &TypeIndex) -> Self { - let alloc_id = info.alloc_id().to_index() as u64; + let alloc_id = to_index(&info.alloc_id()) as u64; let ty = info.ty(); let ty_name = type_index.get_name(ty); @@ -253,25 +254,25 @@ impl TypeIndex { let mut index = Self::new(); for (ty, metadata) in types { let entry = TypeEntry::from_metadata(metadata, *ty); - index.by_id.insert(ty.to_index() as u64, entry); + index.by_id.insert(to_index(ty) as u64, entry); } index } pub fn get(&self, ty: Ty) -> Option<&TypeEntry> { - self.by_id.get(&(ty.to_index() as u64)) + self.by_id.get(&(to_index(&ty) as u64)) } pub fn get_name(&self, ty: Ty) -> String { self.by_id - .get(&(ty.to_index() as u64)) + .get(&(to_index(&ty) as u64)) .map(|e| e.name.clone()) .unwrap_or_else(|| format!("{}", ty)) } pub fn get_layout(&self, ty: Ty) -> Option<&LayoutInfo> { self.by_id - .get(&(ty.to_index() as u64)) + .get(&(to_index(&ty) as u64)) .and_then(|e| e.layout.as_ref()) } diff --git a/src/mk_graph/util.rs b/src/mk_graph/util.rs index c5d278eb..328acb3b 100644 --- a/src/mk_graph/util.rs +++ b/src/mk_graph/util.rs @@ -7,7 +7,8 @@ use stable_mir::mir::{ AggregateKind, BorrowKind, ConstOperand, Mutability, NonDivergingIntrinsic, NullOp, Operand, Place, ProjectionElem, Rvalue, Terminator, TerminatorKind, UnwindAction, }; -use stable_mir::ty::{IndexedVal, RigidTy}; +use stable_mir::ty::RigidTy; +use crate::compat::indexed_val::to_index; use crate::printer::FnSymType; @@ -57,7 +58,7 @@ impl GraphLabelString for AggregateKind { match &self { Array(_ty) => "Array".to_string(), Tuple => "Tuple".to_string(), - Adt(_, idx, _, _, _) => format!("Adt{{{}}}", idx.to_index()), + Adt(_, idx, _, _, _) => format!("Adt{{{}}}", to_index(idx)), Closure(_, _) => "Closure".to_string(), Coroutine(_, _, _) => "Coroutine".to_string(), @@ -167,7 +168,7 @@ fn decorate(thing: String, p: &ProjectionElem) -> String { to ) } - ProjectionElem::Downcast(i) => format!("({thing} as variant {})", i.to_index()), + ProjectionElem::Downcast(i) => format!("({thing} as variant {})", to_index(i)), ProjectionElem::OpaqueCast(ty) => format!("{thing} as type {ty}"), ProjectionElem::Subtype(i) => format!("{thing} :> {i}"), } diff --git a/src/printer/collect.rs b/src/printer/collect.rs index f44a8532..e4a5eb32 100644 --- a/src/printer/collect.rs +++ b/src/printer/collect.rs @@ -19,7 +19,7 @@ use std::collections::{HashMap, HashSet}; use stable_mir::mir::alloc::GlobalAlloc; use stable_mir::mir::mono::MonoItem; use stable_mir::mir::visit::MirVisitor; -use stable_mir::ty::IndexedVal; +use crate::compat::indexed_val::to_index; use stable_mir::CrateDef; use super::items::{get_foreign_module_details, mk_item}; @@ -274,13 +274,13 @@ fn assemble_smir(tcx: TyCtxt<'_>, collected: CollectedCrate, derived: DerivedInf let b_kind = b.0 .1.as_ref().map(|k| format!("{k}")); a_kind.cmp(&b_kind) }) - .then_with(|| a.0 .0.to_index().cmp(&b.0 .0.to_index())) + .then_with(|| to_index(&a.0 .0).cmp(&to_index(&b.0 .0))) }); items.sort(); types.sort_by(|a, b| { format!("{}", a.0) .cmp(&format!("{}", b.0)) - .then_with(|| a.0.to_index().cmp(&b.0.to_index())) + .then_with(|| to_index(&a.0).cmp(&to_index(&b.0))) }); spans.sort_by(|a, b| a.1.cmp(&b.1)); diff --git a/src/printer/mir_visitor.rs b/src/printer/mir_visitor.rs index 2989a084..59a71740 100644 --- a/src/printer/mir_visitor.rs +++ b/src/printer/mir_visitor.rs @@ -20,7 +20,8 @@ use stable_mir::mir::alloc::GlobalAlloc; use stable_mir::mir::mono::Instance; use stable_mir::mir::visit::MirVisitor; use stable_mir::mir::{LocalDecl, Rvalue, Terminator, TerminatorKind}; -use stable_mir::ty::{ConstDef, IndexedVal}; +use stable_mir::ty::ConstDef; +use crate::compat::indexed_val::{to_index, to_val}; use stable_mir::visitor::Visitable; use stable_mir::CrateDef; @@ -115,7 +116,7 @@ fn field_containing_offset(l: &LayoutShape, offset: usize) -> Option<(usize, usi } fn opaque_placeholder_ty() -> stable_mir::ty::Ty { - stable_mir::ty::Ty::to_val(0) + to_val::(0) } fn get_prov_ty(ty: stable_mir::ty::Ty, offset: &usize) -> Option { @@ -305,7 +306,7 @@ fn collect_alloc( impl MirVisitor for BodyAnalyzer<'_, '_> { fn visit_span(&mut self, span: &stable_mir::ty::Span) { self.spans.insert( - span.to_index(), + to_index(span), crate::compat::spans::resolve_span(self.tcx, span), ); } diff --git a/src/printer/types.rs b/src/printer/types.rs index 07cb24d0..0ecf7225 100644 --- a/src/printer/types.rs +++ b/src/printer/types.rs @@ -10,6 +10,8 @@ use crate::compat::stable_mir; use stable_mir::abi::LayoutShape; use stable_mir::ty::TyKind; +#[cfg(feature = "debug_log")] +use crate::compat::indexed_val::to_index; use super::schema::TypeMetadata; @@ -142,19 +144,19 @@ pub(super) fn mk_type_metadata( T(Foreign(_)) | T(Pat(_, _)) | T(Coroutine(_, _, _)) | T(CoroutineWitness(_, _)) => { debug_log_println!( "\nDEBUG: Skipping unsupported ty {}: {:?}", - k.to_index(), + to_index(&k), k.kind() ); None } T(Never) => Some((k, VoidType)), TyKind::Alias(_, _) | TyKind::Param(_) | TyKind::Bound(_, _) => { - debug_log_println!("\nSkipping undesired ty {}: {:?}", k.to_index(), k.kind()); + debug_log_println!("\nSkipping undesired ty {}: {:?}", to_index(&k), k.kind()); None } _ => { // redundant because of first 4 cases, but rustc does not understand that - debug_log_println!("\nDEBUG: Funny other Ty {}: {:?}", k.to_index(), k.kind()); + debug_log_println!("\nDEBUG: Funny other Ty {}: {:?}", to_index(&k), k.kind()); None } } From 0d31940a6130b0da94b320fb3902d3dab2b6c1c4 Mon Sep 17 00:00:00 2001 From: cds-amal Date: Tue, 10 Mar 2026 18:29:41 -0400 Subject: [PATCH 2/3] test: add golden files for nightly-2025-07-05 --- .../assert_eq.smir.json.expected | 4036 +++++++ .../binop.smir.json.expected | 9435 +++++++++++++++++ .../char-trivial.smir.json.expected | 1946 ++++ .../closure-args.smir.json.expected | 2367 +++++ .../closure-no-args.smir.json.expected | 2071 ++++ .../const-arithm-simple.smir.json.expected | 2178 ++++ .../nightly-2025-07-05/div.smir.json.expected | 2273 ++++ .../double-ref-deref.smir.json.expected | 2114 ++++ .../enum.smir.json.expected | 1587 +++ .../fibonacci.smir.json.expected | 2617 +++++ .../float.smir.json.expected | 2472 +++++ .../fn-ptr-in-arg.smir.json.expected | 7117 +++++++++++++ .../modulo.smir.json.expected | 2271 ++++ .../mutual_recursion.smir.json.expected | 2569 +++++ .../option-construction.smir.json.expected | 2224 ++++ .../param_types.smir.json.expected | 4735 +++++++++ .../primitive-type-bounds.smir.json.expected | 2215 ++++ .../recursion-simple-match.smir.json.expected | 2401 +++++ .../recursion-simple.smir.json.expected | 2401 +++++ .../ref-deref.smir.json.expected | 2033 ++++ .../shl_min.smir.json.expected | 3648 +++++++ .../slice.smir.json.expected | 5332 ++++++++++ ...vtable-nonbuiltin-deref.smir.json.expected | 2822 +++++ .../strange-ref-deref.smir.json.expected | 2117 ++++ .../struct.smir.json.expected | 2315 ++++ .../sum-to-n.smir.json.expected | 2789 +++++ .../tuple-eq.smir.json.expected | 2801 +++++ .../tuples-simple.smir.json.expected | 2111 ++++ .../weirdRefs.smir.json.expected | 3552 +++++++ 29 files changed, 88549 insertions(+) create mode 100644 tests/integration/expected/nightly-2025-07-05/assert_eq.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/binop.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/char-trivial.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/closure-args.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/closure-no-args.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/const-arithm-simple.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/div.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/double-ref-deref.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/enum.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/fibonacci.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/float.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/fn-ptr-in-arg.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/modulo.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/mutual_recursion.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/option-construction.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/param_types.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/primitive-type-bounds.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/recursion-simple-match.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/recursion-simple.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/ref-deref.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/shl_min.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/slice.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/static-vtable-nonbuiltin-deref.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/strange-ref-deref.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/struct.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/sum-to-n.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/tuple-eq.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/tuples-simple.smir.json.expected create mode 100644 tests/integration/expected/nightly-2025-07-05/weirdRefs.smir.json.expected diff --git a/tests/integration/expected/nightly-2025-07-05/assert_eq.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/assert_eq.smir.json.expected new file mode 100644 index 00000000..da54aeb4 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/assert_eq.smir.json.expected @@ -0,0 +1,4036 @@ +{ + "allocs": [], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking13assert_failed17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 3, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 39, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 3, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 3, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 39, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 3, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 2, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Aggregate": [ + "Tuple", + [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 6, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 4, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 8, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 4, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 10, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 7, + "projection": [ + "Deref" + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 11, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 8, + "projection": [ + "Deref" + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 10, + "projection": [] + } + }, + { + "Move": { + "local": 11, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 9, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 12, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [], + null, + null + ] + }, + [] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 14, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 12, + "projection": [] + } + }, + { + "Copy": { + "local": 7, + "projection": [] + } + }, + { + "Copy": { + "local": 8, + "projection": [] + } + }, + { + "Move": { + "local": 14, + "projection": [] + } + } + ], + "destination": { + "local": 13, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "left_val", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 7, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "right_val", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 8, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "kind", + "source_info": { + "scope": 4 + }, + "value": { + "Place": { + "local": 12, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN9assert_eq4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U16" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "Usize" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + "tag_encoding": { + "Niche": { + "niche_start": 0, + "niche_variants": { + "end": 1, + "start": 1 + }, + "untagged_variant": 0 + } + }, + "tag_field": 0, + "variants": [ + { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + }, + { + "num_bits": 128 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 2, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 80 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "core::fmt::rt::ArgumentType<'_>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1, + 2 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 2, + "start": 0 + }, + "value": { + "Int": { + "length": "I16", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 2, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 16 + } + ] + } + }, + "size": { + "num_bits": 32 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 1 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 16 + }, + "variants": { + "Single": { + "index": 2 + } + } + } + ] + } + } + }, + "name": "core::fmt::rt::Count" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1, + 2 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 2, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 2, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 1 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 2 + } + } + } + ] + } + } + }, + "name": "core::panicking::AssertKind" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + "tag_encoding": { + "Niche": { + "niche_start": 0, + "niche_variants": { + "end": 0, + "start": 0 + }, + "untagged_variant": 1 + } + }, + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option<&[core::fmt::rt::Placeholder]>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 384 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + "tag_encoding": { + "Niche": { + "niche_start": 0, + "niche_variants": { + "end": 0, + "start": 0 + }, + "untagged_variant": 1 + } + }, + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 384 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::result::Result<(), std::fmt::Error>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "core::fmt::rt::Argument<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 256 + }, + { + "num_bits": 320 + }, + { + "num_bits": 0 + }, + { + "num_bits": 128 + } + ] + } + }, + "size": { + "num_bits": 384 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "core::fmt::rt::Placeholder" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 256 + }, + { + "num_bits": 128 + } + ] + } + }, + "size": { + "num_bits": 384 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Arguments<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Error" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 128 + }, + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Formatter<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + }, + { + "num_bits": 48 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::FormattingOptions" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&()>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull<()>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": false + } + }, + "abi_align": 8, + "fields": { + "Array": { + "count": 0, + "stride": { + "num_bits": 128 + } + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": null + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": false + } + }, + "abi_align": 8, + "fields": { + "Array": { + "count": 0, + "stride": { + "num_bits": 128 + } + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": null + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": false + } + }, + "abi_align": 8, + "fields": { + "Array": { + "count": 0, + "stride": { + "num_bits": 384 + } + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": null + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/binop.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/binop.smir.json.expected new file mode 100644 index 00000000..cf33482c --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/binop.smir.json.expected @@ -0,0 +1,9435 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 120, + 32, + 42, + 32, + 45, + 121, + 32, + 61, + 61, + 32, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 120, + 32, + 42, + 32, + 121, + 32, + 61, + 61, + 32, + 45, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 38, + 32, + 50, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 38, + 32, + 51, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 94, + 32, + 50, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 94, + 32, + 51, + 32, + 61, + 61, + 32, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 124, + 32, + 50, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 124, + 32, + 51, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 50, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 52 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 50, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 51, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 53, + 50, + 32, + 61, + 61, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 42, + 32, + 45, + 121, + 32, + 61, + 61, + 32, + 45, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 42, + 32, + 121, + 32, + 61, + 61, + 32, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 45, + 32, + 121, + 32, + 62, + 61, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 61, + 61, + 32, + 53, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 61, + 61, + 32, + 121, + 32, + 43, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 62, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 62, + 61, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 45, + 32, + 121, + 32, + 61, + 61, + 32, + 51, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 61, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 61, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 45, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 121, + 32, + 45, + 32, + 120, + 32, + 33, + 61, + 32, + 120, + 32, + 45, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 121, + 32, + 45, + 32, + 120, + 32, + 61, + 61, + 32, + 45, + 51, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + [ + { + "NormalSym": "_ZN5binop10test_binop17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 52, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 7, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 7, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 6, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 52, + 5 + ] + ], + "otherwise": 6 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 11, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 11, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 7, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 8, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 10, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 11, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 13, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 13, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + }, + "target": 8, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 12, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 13, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 10, + "projection": [] + } + }, + { + "Move": { + "local": 12, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 9, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 10 + ] + ], + "otherwise": 9 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 16, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 16, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 11, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 2 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 14, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 15, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 16, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 15, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 32, + 12 + ] + ], + "otherwise": 13 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 19, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 19, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + }, + "target": 14, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 3 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 17, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 18, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 19, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 18, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 4294967264, + 15 + ] + ], + "otherwise": 16 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 23, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 23, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + }, + "target": 17, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 4 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 20, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 22, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 23, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 25, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 25, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 18, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 24, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 25, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 21, + "projection": [] + }, + { + "BinaryOp": [ + "Ne", + { + "Move": { + "local": 22, + "projection": [] + } + }, + { + "Move": { + "local": 24, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 21, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 20 + ] + ], + "otherwise": 19 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 28, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Mul", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 28, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Mul", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 21, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 5 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 26, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 27, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 28, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 27, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 420, + 22 + ] + ], + "otherwise": 23 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 32, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 32, + "projection": [] + } + }, + "expected": false, + "msg": { + "OverflowNeg": { + "Copy": { + "local": 2, + "projection": [] + } + } + }, + "target": 24, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 6 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 29, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 31, + "projection": [] + }, + { + "UnaryOp": [ + "Neg", + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 33, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Mul", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 31, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 33, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Mul", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 31, + "projection": [] + } + } + ] + }, + "target": 25, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 30, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 33, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 30, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 4294966876, + 26 + ] + ], + "otherwise": 27 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 37, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 37, + "projection": [] + } + }, + "expected": false, + "msg": { + "OverflowNeg": { + "Copy": { + "local": 1, + "projection": [] + } + } + }, + "target": 28, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 7 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 34, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 36, + "projection": [] + }, + { + "UnaryOp": [ + "Neg", + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 38, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Mul", + { + "Copy": { + "local": 36, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 38, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Mul", + { + "Move": { + "local": 36, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 29, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 35, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 38, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 35, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 4294966876, + 30 + ] + ], + "otherwise": 31 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 42, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 42, + "projection": [] + } + }, + "expected": false, + "msg": { + "OverflowNeg": { + "Copy": { + "local": 1, + "projection": [] + } + } + }, + "target": 32, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 8 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 39, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 41, + "projection": [] + }, + { + "UnaryOp": [ + "Neg", + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 44, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 44, + "projection": [] + } + }, + "expected": false, + "msg": { + "OverflowNeg": { + "Copy": { + "local": 2, + "projection": [] + } + } + }, + "target": 33, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 43, + "projection": [] + }, + { + "UnaryOp": [ + "Neg", + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 45, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Mul", + { + "Copy": { + "local": 41, + "projection": [] + } + }, + { + "Copy": { + "local": 43, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 45, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Mul", + { + "Move": { + "local": 41, + "projection": [] + } + }, + { + "Move": { + "local": 43, + "projection": [] + } + } + ] + }, + "target": 34, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 40, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 45, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 40, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 420, + 35 + ] + ], + "otherwise": 36 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 47, + "projection": [] + }, + { + "BinaryOp": [ + "BitXor", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 47, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 3, + 37 + ] + ], + "otherwise": 38 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 9 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 46, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 49, + "projection": [] + }, + { + "BinaryOp": [ + "BitXor", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 3, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 49, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 2, + 39 + ] + ], + "otherwise": 40 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 10 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 48, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 51, + "projection": [] + }, + { + "BinaryOp": [ + "BitOr", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 51, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 3, + 41 + ] + ], + "otherwise": 42 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 11 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 50, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 53, + "projection": [] + }, + { + "BinaryOp": [ + "BitOr", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 3, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 53, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 3, + 43 + ] + ], + "otherwise": 44 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 12 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 52, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 55, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 55, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 45 + ] + ], + "otherwise": 46 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 13 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 54, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 57, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 3, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 57, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 1, + 47 + ] + ], + "otherwise": 48 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 14 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 56, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 60, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 61, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 60, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 32, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 61, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 49, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 15 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 58, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 59, + "projection": [] + }, + { + "BinaryOp": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 59, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 4, + 50 + ] + ], + "otherwise": 51 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 64, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 65, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 64, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 32, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 65, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shr", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 52, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 16 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 62, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 63, + "projection": [] + }, + { + "BinaryOp": [ + "Shr", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 63, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 1, + 53 + ] + ], + "otherwise": 54 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 68, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 69, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 68, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 32, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 69, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shr", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 3, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 55, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 17 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 66, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 67, + "projection": [] + }, + { + "BinaryOp": [ + "Shr", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 3, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 67, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 1, + 56 + ] + ], + "otherwise": 57 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 72, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 73, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 72, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 32, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 73, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shr", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 58, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 18 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 70, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 71, + "projection": [] + }, + { + "BinaryOp": [ + "Shr", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 71, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 59 + ] + ], + "otherwise": 60 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 77, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 77, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 61, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 19 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 74, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 76, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 77, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 75, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 76, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 75, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 63 + ] + ], + "otherwise": 62 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 81, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 81, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 64, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 20 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 78, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 80, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 81, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 79, + "projection": [] + }, + { + "BinaryOp": [ + "Le", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 80, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 79, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 66 + ] + ], + "otherwise": 65 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 86, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 86, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 67, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 21 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 82, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 85, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 86, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 87, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 85, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 87, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Move": { + "local": 85, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 68, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 84, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 87, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 83, + "projection": [] + }, + { + "BinaryOp": [ + "Le", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 84, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 83, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 70 + ] + ], + "otherwise": 69 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 91, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 91, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 71, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 22 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 88, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 90, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 91, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 89, + "projection": [] + }, + { + "BinaryOp": [ + "Gt", + { + "Move": { + "local": 90, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 89, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 73 + ] + ], + "otherwise": 72 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 95, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 95, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 74, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 23 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 92, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 94, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 95, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 93, + "projection": [] + }, + { + "BinaryOp": [ + "Ge", + { + "Move": { + "local": 94, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 93, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 76 + ] + ], + "otherwise": 75 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 100, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 100, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 77, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 24 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 96, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 99, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 100, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 101, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 99, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 101, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Move": { + "local": 99, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 78, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 98, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 101, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 97, + "projection": [] + }, + { + "BinaryOp": [ + "Ge", + { + "Move": { + "local": 98, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 97, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 80 + ] + ], + "otherwise": 79 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 25 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 102, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "x", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "y", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "test_binop" + } + }, + "symbol_name": "_ZN5binop10test_binop17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 1, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "x", + "source_info": { + "scope": 1 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "y", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN5binop4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/char-trivial.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/char-trivial.smir.json.expected new file mode 100644 index 00000000..4728c5e7 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/char-trivial.smir.json.expected @@ -0,0 +1,1946 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 61, + 61, + 32, + 39, + 97, + 39 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 97, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 97, + 1 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 97, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN12char_trivial4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Char" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/closure-args.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/closure-args.smir.json.expected new file mode 100644 index 00000000..5d5330c6 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/closure-args.smir.json.expected @@ -0,0 +1,2367 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 109, + 40, + 50, + 48, + 44, + 32, + 50, + 50, + 41, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN12closure_args4main28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Aggregate": [ + "Tuple", + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 20, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 22, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 42, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "sum", + "source_info": { + "scope": 1 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN12closure_args4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 3, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 3, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 3, + "projection": [] + } + } + ] + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 2, + "composite": null, + "name": "x", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "y", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + } + ] + }, + "name": "main::{closure#0}" + } + }, + "symbol_name": "_ZN12closure_args4main28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ], + [ + { + "FunType": "{closure@tests/integration/programs/closure-args.rs:2:15: 2:28}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/closure-no-args.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/closure-no-args.smir.json.expected new file mode 100644 index 00000000..b627df63 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/closure-no-args.smir.json.expected @@ -0,0 +1,2071 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 109, + 40, + 41, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN15closure_no_args4main28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 42, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 4, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "sum", + "source_info": { + "scope": 1 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN15closure_no_args4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "main::{closure#0}" + } + }, + "symbol_name": "_ZN15closure_no_args4main28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ], + [ + { + "FunType": "{closure@tests/integration/programs/closure-no-args.rs:2:15: 2:24}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/const-arithm-simple.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/const-arithm-simple.smir.json.expected new file mode 100644 index 00000000..c321cb10 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/const-arithm-simple.smir.json.expected @@ -0,0 +1,2178 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 122 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN19const_arithm_simple4test17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 1, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 4, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "x", + "source_info": { + "scope": 1 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "y", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "z", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN19const_arithm_simple4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "BinaryOp": [ + "Gt", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "x", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "y", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "test" + } + }, + "symbol_name": "_ZN19const_arithm_simple4test17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "Usize" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/div.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/div.smir.json.expected new file mode 100644 index 00000000..11c2a16b --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/div.smir.json.expected @@ -0,0 +1,2273 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 52, + 50, + 48, + 32, + 47, + 32, + 49, + 48, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 2, + "projection": [] + } + }, + "expected": false, + "msg": { + "DivisionByZero": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 164, + 1, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 255, + 255, + 255, + 255 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 164, + 1, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 5, + "projection": [] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Div", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 164, + 1, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "BinaryOp": [ + "Div", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 164, + 1, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 42, + 3 + ] + ], + "otherwise": 4 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 6, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "main" + } + }, + "symbol_name": "_ZN3div4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/double-ref-deref.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/double-ref-deref.smir.json.expected new file mode 100644 index 00000000..e804d8a6 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/double-ref-deref.smir.json.expected @@ -0,0 +1,2114 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 42, + 42, + 99, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 2, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "CopyForDeref": { + "local": 3, + "projection": [ + "Deref" + ] + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 6, + "projection": [ + "Deref" + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 4, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 42, + 1 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "c", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN16double_ref_deref4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/enum.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/enum.smir.json.expected new file mode 100644 index 00000000..c407bf1b --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/enum.smir.json.expected @@ -0,0 +1,1587 @@ +{ + "allocs": [], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [], + null, + null + ] + }, + [] + ] + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN4enum4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "Letter" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/fibonacci.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/fibonacci.smir.json.expected new file mode 100644 index 00000000..5809441a --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/fibonacci.smir.json.expected @@ -0,0 +1,2617 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + [ + { + "NormalSym": "_ZN9fibonacci9fibonacci17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 5, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 1, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 5, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "ans", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN9fibonacci4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ], + [ + 1, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 9 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 9 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 7, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 6, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 7, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 6, + "projection": [] + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 7, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 8, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 5, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 8, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 5, + "projection": [] + } + } + ] + }, + "target": 8, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 8, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 9 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "n", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "fibonacci" + } + }, + "symbol_name": "_ZN9fibonacci9fibonacci17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/float.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/float.smir.json.expected new file mode 100644 index 00000000..74b49223 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/float.smir.json.expected @@ -0,0 +1,2472 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 43, + 32, + 98, + 32, + 61, + 61, + 32, + 52, + 46, + 55 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 99, + 32, + 43, + 32, + 100, + 32, + 61, + 61, + 32, + 52, + 46, + 55 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 96, + 64 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 154, + 153, + 153, + 63 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "BinaryOp": [ + "Add", + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 102, + 102, + 150, + 64 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 8, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 64 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 51, + 51, + 51, + 51, + 51, + 51, + 243, + 63 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "BinaryOp": [ + "Add", + { + "Move": { + "local": 8, + "projection": [] + } + }, + { + "Move": { + "local": 9, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 7, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 205, + 204, + 204, + 204, + 204, + 204, + 18, + 64 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 6, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 4 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 10, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 96, + 64 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 154, + 153, + 153, + 63 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "c", + "source_info": { + "scope": 3 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 64 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "d", + "source_info": { + "scope": 4 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 51, + 51, + 51, + 51, + 51, + 51, + 243, + 63 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN5float4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Float": "F32" + } + } + ], + [ + { + "PrimitiveType": { + "Float": "F64" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/fn-ptr-in-arg.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/fn-ptr-in-arg.smir.json.expected new file mode 100644 index 00000000..1c609c9a --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/fn-ptr-in-arg.smir.json.expected @@ -0,0 +1,7117 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 78, + 111, + 110, + 101 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 83, + 111, + 109, + 101 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 8, + "bytes": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3cmp5impls54_$LT$impl$u20$core..cmp..PartialEq$u20$for$u20$u64$GT$2eq17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u64$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u64$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u64$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt9Formatter9write_str17h" + } + ], + [ + { + "NormalSym": "_ZN4core3num21_$LT$impl$u20$u64$GT$13from_le_bytes17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core6option15Option$LT$T$GT$3map17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking13assert_failed17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking19assert_failed_inner17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + [ + { + "NormalSym": "_ZN66_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + { + "Array": 0 + }, + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 21 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 1, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 3, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 2 + ] + ] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Aggregate": [ + "Tuple", + [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 6, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 4, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 8, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 4, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Copy": { + "local": 7, + "projection": [] + } + }, + { + "Copy": { + "local": 8, + "projection": [] + } + } + ], + "destination": { + "local": 9, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 9, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 4 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 10, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [], + null, + null + ] + }, + [] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 12, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 10, + "projection": [] + } + }, + { + "Copy": { + "local": 7, + "projection": [] + } + }, + { + "Copy": { + "local": 8, + "projection": [] + } + }, + { + "Move": { + "local": 12, + "projection": [] + } + } + ], + "destination": { + "local": 11, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "bytes", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "opt", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "left_val", + "source_info": { + "scope": 4 + }, + "value": { + "Place": { + "local": 7, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "right_val", + "source_info": { + "scope": 4 + }, + "value": { + "Place": { + "local": 8, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "kind", + "source_info": { + "scope": 5 + }, + "value": { + "Place": { + "local": 10, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN13fn_ptr_in_arg4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref" + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "<&std::option::Option as std::fmt::Debug>::fmt" + } + }, + "symbol_name": "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref" + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "<&u64 as std::fmt::Debug>::fmt" + } + }, + "symbol_name": "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref" + ] + } + } + } + ] + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref" + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 4 + } + }, + { + "kind": { + "StorageDead": 3 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "other", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::cmp::impls::::eq" + } + }, + "symbol_name": "_ZN4core3cmp5impls54_$LT$impl$u20$core..cmp..PartialEq$u20$for$u20$u64$GT$2eq17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Move": { + "local": 4, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 2 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 6, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 6 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 4 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 6 + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 5, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 4 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "core::fmt::num::::fmt" + } + }, + "symbol_name": "_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u64$GT$3fmt17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "Transmute", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "bytes", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "core::num::::from_le_bytes" + } + }, + "symbol_name": "_ZN4core3num21_$LT$impl$u20$u64$GT$13from_le_bytes17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": " u64 {core::num::::from_le_bytes} as std::ops::FnOnce<([u8; 8],)>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Discriminant": { + "local": 1, + "projection": [] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ], + [ + 1, + 3 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Unreachable" + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 2, + "projection": [] + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 1, + "projection": [ + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 6 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 2, + "projection": [] + } + } + } + ] + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + "Tuple", + [ + { + "Copy": { + "local": 4, + "projection": [] + } + } + ] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Move": { + "local": 7, + "projection": [] + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 6 + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 1, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Move": { + "local": 5, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 5 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "x", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::option::Option::<[u8; 8]>::map:: u64 {core::num::::from_le_bytes}>" + } + }, + "symbol_name": "_ZN4core6option15Option$LT$T$GT$3map17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 2, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 8, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 3, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 8, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 7, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "kind", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "left", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "right", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "args", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "core::panicking::assert_failed::, std::option::Option>" + } + }, + "symbol_name": "_ZN4core9panicking13assert_failed17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Discriminant": { + "local": 1, + "projection": [ + "Deref" + ] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ], + [ + 1, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Unreachable" + } + }, + { + "statements": [ + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [ + "Deref", + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + ] + } + ] + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 4, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + }, + { + "Move": { + "local": 5, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": 1 + } + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": 0 + } + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 5 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "__self_0", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": " as std::fmt::Debug>::fmt" + } + }, + "symbol_name": "_ZN66_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Discriminant": { + "local": 1, + "projection": [ + "Deref" + ] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 5, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ], + [ + 1, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Unreachable" + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Discriminant": { + "local": 2, + "projection": [ + "Deref" + ] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 4 + ], + [ + 1, + 5 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Discriminant": { + "local": 2, + "projection": [ + "Deref" + ] + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Copy": { + "local": 4, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [ + "Deref", + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 2, + "projection": [ + "Deref", + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Move": { + "local": 7, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 6, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "other", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "l", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 6, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "r", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 7, + "projection": [] + } + } + } + ] + }, + "name": " as std::cmp::PartialEq>::eq" + } + }, + "symbol_name": "_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U16" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U64" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "Usize" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + "tag_encoding": { + "Niche": { + "niche_start": 0, + "niche_variants": { + "end": 1, + "start": 1 + }, + "untagged_variant": 0 + } + }, + "tag_field": 0, + "variants": [ + { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + }, + { + "num_bits": 128 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 2, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 80 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "core::fmt::rt::ArgumentType<'_>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1, + 2 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 2, + "start": 0 + }, + "value": { + "Int": { + "length": "I16", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 2, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 16 + } + ] + } + }, + "size": { + "num_bits": 32 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 1 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 16 + }, + "variants": { + "Single": { + "index": 2 + } + } + } + ] + } + } + }, + "name": "core::fmt::rt::Count" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1, + 2 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 2, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 2, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 1 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 2 + } + } + } + ] + } + } + }, + "name": "core::panicking::AssertKind" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + "tag_encoding": { + "Niche": { + "niche_start": 0, + "niche_variants": { + "end": 0, + "start": 0 + }, + "untagged_variant": 1 + } + }, + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option<&[core::fmt::rt::Placeholder]>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 72 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 72 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option<[u8; 8]>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 384 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + "tag_encoding": { + "Niche": { + "niche_start": 0, + "niche_variants": { + "end": 0, + "start": 0 + }, + "untagged_variant": 1 + } + }, + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 384 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::result::Result<(), std::fmt::Error>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "core::fmt::rt::Argument<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 256 + }, + { + "num_bits": 320 + }, + { + "num_bits": 0 + }, + { + "num_bits": 128 + } + ] + } + }, + "size": { + "num_bits": 384 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "core::fmt::rt::Placeholder" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 256 + }, + { + "num_bits": 128 + } + ] + } + }, + "size": { + "num_bits": 384 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Arguments<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Error" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 128 + }, + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Formatter<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + }, + { + "num_bits": 48 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::FormattingOptions" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&()>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull<()>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": false + } + }, + "abi_align": 8, + "fields": { + "Array": { + "count": 0, + "stride": { + "num_bits": 128 + } + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": null + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": false + } + }, + "abi_align": 8, + "fields": { + "Array": { + "count": 0, + "stride": { + "num_bits": 128 + } + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": null + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": false + } + }, + "abi_align": 8, + "fields": { + "Array": { + "count": 0, + "stride": { + "num_bits": 384 + } + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": null + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Array": { + "count": 8, + "stride": { + "num_bits": 8 + } + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": { + "kind": { + "Value": [ + { + "align": 8, + "bytes": [ + 8, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + ] + } + } + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/modulo.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/modulo.smir.json.expected new file mode 100644 index 00000000..deeb5bc9 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/modulo.smir.json.expected @@ -0,0 +1,2271 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 52, + 50, + 32, + 37, + 32, + 49, + 48, + 32, + 61, + 61, + 32, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 2, + "projection": [] + } + }, + "expected": false, + "msg": { + "RemainderByZero": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 255, + 255, + 255, + 255 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 5, + "projection": [] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Rem", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "BinaryOp": [ + "Rem", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 2, + 3 + ] + ], + "otherwise": 4 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 6, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "main" + } + }, + "symbol_name": "_ZN6modulo4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/mutual_recursion.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/mutual_recursion.smir.json.expected new file mode 100644 index 00000000..8671afc0 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/mutual_recursion.smir.json.expected @@ -0,0 +1,2569 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 116, + 114, + 117, + 101 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN16mutual_recursion6is_odd17h" + } + ], + [ + { + "NormalSym": "_ZN16mutual_recursion7is_even17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 1, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "ans", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN16mutual_recursion4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 1 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 4 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 3, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 3, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 3, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "n", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "is_odd" + } + }, + "symbol_name": "_ZN16mutual_recursion6is_odd17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 1 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 1 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 4 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 3, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 3, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 3, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "n", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "is_even" + } + }, + "symbol_name": "_ZN16mutual_recursion7is_even17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/option-construction.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/option-construction.smir.json.expected new file mode 100644 index 00000000..2fb24345 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/option-construction.smir.json.expected @@ -0,0 +1,2224 @@ +{ + "allocs": [], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core6option13unwrap_failed17h" + } + ], + [ + { + "NormalSym": "_ZN4core6option15Option$LT$T$GT$6unwrap17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 1, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "c", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN19option_construction4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Discriminant": { + "local": 1, + "projection": [] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ], + [ + 1, + 3 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Unreachable" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 1, + "projection": [ + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "val", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + } + ] + }, + "name": "std::option::Option::::unwrap" + } + }, + "symbol_name": "_ZN4core6option15Option$LT$T$GT$6unwrap17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 32 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/param_types.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/param_types.smir.json.expected new file mode 100644 index 00000000..03afdb02 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/param_types.smir.json.expected @@ -0,0 +1,4735 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 97, + 115, + 32, + 117, + 54, + 52, + 32, + 61, + 61, + 32, + 100, + 46, + 117, + 110, + 119, + 114, + 97, + 112, + 40, + 41 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 99, + 97, + 108, + 108, + 101, + 100, + 32, + 96, + 82, + 101, + 115, + 117, + 108, + 116, + 58, + 58, + 117, + 110, + 119, + 114, + 97, + 112, + 40, + 41, + 96, + 32, + 111, + 110, + 32, + 97, + 110, + 32, + 96, + 69, + 114, + 114, + 96, + 32, + 118, + 97, + 108, + 117, + 101 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u8$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u8$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core6option13unwrap_failed17h" + } + ], + [ + { + "NormalSym": "_ZN4core6option15Option$LT$T$GT$6unwrap17h" + } + ], + [ + { + "NormalSym": "_ZN4core6result13unwrap_failed17h" + } + ], + [ + { + "NormalSym": "_ZN4core6result19Result$LT$T$C$E$GT$3err17h" + } + ], + [ + { + "NormalSym": "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 1, + [ + { + "Type": 0 + }, + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Move": { + "local": 6, + "projection": [] + } + } + ] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Copy": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 8, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 8, + "projection": [] + } + } + ], + "destination": { + "local": 7, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 10, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Copy": { + "local": 7, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Copy": { + "local": 5, + "projection": [] + } + } + ], + "destination": { + "local": 11, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 3, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 10, + "projection": [] + } + }, + { + "Move": { + "local": 11, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 9, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 5 + ] + ], + "otherwise": 4 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 12, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "c", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "d", + "source_info": { + "scope": 4 + }, + "value": { + "Place": { + "local": 5, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "x", + "source_info": { + "scope": 5 + }, + "value": { + "Place": { + "local": 7, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN11param_types4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Move": { + "local": 4, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 2 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 6, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 6 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 4 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 6 + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 5, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 4 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "core::fmt::num::::fmt" + } + }, + "symbol_name": "_ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u8$GT$3fmt17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Discriminant": { + "local": 1, + "projection": [] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ], + [ + 1, + 3 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Unreachable" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 1, + "projection": [ + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "val", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + } + ] + }, + "name": "std::option::Option::::unwrap" + } + }, + "symbol_name": "_ZN4core6option15Option$LT$T$GT$6unwrap17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Discriminant": { + "local": 1, + "projection": [] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ], + [ + 1, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Unreachable" + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 1, + "projection": [ + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 1, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Copy": { + "local": 3, + "projection": [] + } + } + ] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Discriminant": { + "local": 1, + "projection": [] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 4, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 1, + 4 + ], + [ + 0, + 5 + ] + ], + "otherwise": 1 + } + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "x", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + } + ] + }, + "name": "std::result::Result::::err" + } + }, + "symbol_name": "_ZN4core6result19Result$LT$T$C$E$GT$3err17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Discriminant": { + "local": 1, + "projection": [] + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ], + [ + 1, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Unreachable" + } + }, + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 1, + "projection": [ + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 3, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 43, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + }, + { + "Move": { + "local": 5, + "projection": [] + } + } + ], + "destination": { + "local": 4, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": { + "Cleanup": 4 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 1, + "projection": [ + { + "Downcast": 0 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 3, + "projection": [] + }, + "target": 5, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "t", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "e", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + } + ] + }, + "name": "std::result::Result::::unwrap" + } + }, + "symbol_name": "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U16" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U64" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "Usize" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::result::Result<(), std::fmt::Error>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 16 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::result::Result" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 16 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::result::Result" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + }, + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "WithParam" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "WithParam" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Error" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 128 + }, + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Formatter<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + }, + { + "num_bits": 48 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::FormattingOptions" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/primitive-type-bounds.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/primitive-type-bounds.smir.json.expected new file mode 100644 index 00000000..a136fbcf --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/primitive-type-bounds.smir.json.expected @@ -0,0 +1,2215 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 61, + 61, + 32, + 98 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 254, + 255, + 255, + 255 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 2, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 254, + 255, + 255, + 255 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 255, + 255, + 255, + 255 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 4, + "projection": [] + } + }, + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 255, + 255, + 255, + 255 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN21primitive_type_bounds4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/recursion-simple-match.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/recursion-simple-match.smir.json.expected new file mode 100644 index 00000000..9d83db7d --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/recursion-simple-match.smir.json.expected @@ -0,0 +1,2401 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN22recursion_simple_match12sum_to_n_rec17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 3, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 5, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 5, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "n", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "sum_to_n_rec" + } + }, + "symbol_name": "_ZN22recursion_simple_match12sum_to_n_rec17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 1, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 55, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "ans", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN22recursion_simple_match4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/recursion-simple.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/recursion-simple.smir.json.expected new file mode 100644 index 00000000..61fb2b5b --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/recursion-simple.smir.json.expected @@ -0,0 +1,2401 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN16recursion_simple12sum_to_n_rec17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 1 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 3, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 4, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 5, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ] + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 5, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "n", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "sum_to_n_rec" + } + }, + "symbol_name": "_ZN16recursion_simple12sum_to_n_rec17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 10, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 1, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 55, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "ans", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN16recursion_simple4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/ref-deref.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/ref-deref.smir.json.expected new file mode 100644 index 00000000..95ccd787 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/ref-deref.smir.json.expected @@ -0,0 +1,2033 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 99, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref" + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 42, + 1 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 4, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "c", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN9ref_deref4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/shl_min.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/shl_min.smir.json.expected new file mode 100644 index 00000000..ad995a25 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/shl_min.smir.json.expected @@ -0,0 +1,3648 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 49, + 50, + 56, + 95, + 105, + 56, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 49, + 55, + 48, + 49, + 52, + 49, + 49, + 56, + 51, + 52, + 54, + 48, + 52, + 54, + 57, + 50, + 51, + 49, + 55, + 51, + 49, + 54, + 56, + 55, + 51, + 48, + 51, + 55, + 49, + 53, + 56, + 56, + 52, + 49, + 48, + 53, + 55, + 50, + 56, + 95, + 105, + 49, + 50, + 56, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 50, + 49, + 52, + 55, + 52, + 56, + 51, + 54, + 52, + 56, + 95, + 105, + 51, + 50, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 51, + 50, + 55, + 54, + 56, + 95, + 105, + 49, + 54, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 57, + 50, + 50, + 51, + 51, + 55, + 50, + 48, + 51, + 54, + 56, + 53, + 52, + 55, + 55, + 53, + 56, + 48, + 56, + 95, + 105, + 54, + 52, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 8, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 3, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "BinaryOp": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 16, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 7, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 2, + "bytes": [ + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 4, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "BinaryOp": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 2, + "bytes": [ + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 5, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 5 + ] + ], + "otherwise": 6 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 10, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 11, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 10, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 32, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 11, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 7, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 8, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "BinaryOp": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 9, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 8 + ] + ], + "otherwise": 9 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 14, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 15, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 14, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 64, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 15, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 10, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 43, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 2 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 12, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 13, + "projection": [] + }, + { + "BinaryOp": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 13, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 11 + ] + ], + "otherwise": 12 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 18, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 19, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Move": { + "local": 18, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 128, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 19, + "projection": [] + } + }, + "expected": true, + "msg": { + "Overflow": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 16, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 13, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 52, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 3 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 16, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 17, + "projection": [] + }, + { + "BinaryOp": [ + "Shl", + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 16, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 128 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 17, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 14 + ] + ], + "otherwise": 15 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 73, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 4 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 20, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "main" + } + }, + "symbol_name": "_ZN7shl_min4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I128" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "I16" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "I64" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "I8" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/slice.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/slice.smir.json.expected new file mode 100644 index 00000000..47dce4d2 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/slice.smir.json.expected @@ -0,0 +1,5332 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 98, + 32, + 61, + 61, + 32, + 91, + 50, + 44, + 32, + 51, + 93 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "IntrinsicSym": "raw_eq" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core5array85_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u3b$$u20$N$u5d$$GT$5index17h" + } + ], + [ + { + "NormalSym": "_ZN4core5array8equality92_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$U$u3b$$u20$N$u5d$$GT$$u20$for$u20$$u5b$T$u5d$$GT$2eq17h" + } + ], + [ + { + "NormalSym": "_ZN4core5array8equality96_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$U$u3b$$u20$N$u5d$$GT$$u20$for$u20$$RF$$u5b$T$u5d$$GT$2eq17h" + } + ], + [ + { + "NormalSym": "_ZN4core5slice5index22slice_index_order_fail17h" + } + ], + [ + { + "NormalSym": "_ZN4core5slice5index24slice_end_index_len_fail17h" + } + ], + [ + { + "NormalSym": "_ZN4core5slice5index74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + [ + { + "NormalSym": "_ZN69_$LT$T$u20$as$u20$core..array..equality..SpecArrayEq$LT$U$C$_$GT$$GT$7spec_eq17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "StorageLive": 13 + } + }, + { + "kind": { + "Assign": [ + { + "local": 13, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Copy": { + "local": 6, + "projection": [] + } + }, + { + "Copy": { + "local": 7, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 13, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 4 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Move": { + "local": 9, + "projection": [] + } + } + ], + "destination": { + "local": 10, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 8 + } + }, + { + "kind": { + "StorageLive": 11 + } + }, + { + "kind": { + "StorageLive": 12 + } + }, + { + "kind": { + "Assign": [ + { + "local": 12, + "projection": [] + }, + { + "AddressOf": [ + "Const", + { + "local": 2, + "projection": [ + "Deref" + ] + } + ] + } + ] + } + }, + { + "kind": { + "StorageLive": 15 + } + }, + { + "kind": { + "StorageLive": 16 + } + }, + { + "kind": { + "Assign": [ + { + "local": 15, + "projection": [] + }, + { + "Cast": [ + "PtrToPtr", + { + "Copy": { + "local": 12, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 16, + "projection": [] + }, + { + "BinaryOp": [ + "Offset", + { + "Copy": { + "local": 15, + "projection": [] + } + }, + { + "Copy": { + "local": 7, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 11, + "projection": [] + }, + { + "Aggregate": [ + { + "RawPtr": [ + 3, + "Not" + ] + }, + [ + { + "Copy": { + "local": 16, + "projection": [] + } + }, + { + "Copy": { + "local": 4, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 16 + } + }, + { + "kind": { + "StorageDead": 15 + } + }, + { + "kind": { + "StorageDead": 12 + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 11, + "projection": [ + "Deref" + ] + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 11 + } + } + ], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 13 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 7, + "projection": [] + } + }, + { + "Move": { + "local": 6, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageLive": 14 + } + }, + { + "kind": { + "Assign": [ + { + "local": 14, + "projection": [] + }, + { + "BinaryOp": [ + "SubUnchecked", + { + "Copy": { + "local": 6, + "projection": [] + } + }, + { + "Copy": { + "local": 7, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 1, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Move": { + "local": 14, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 14 + } + }, + { + "kind": { + "StorageDead": 13 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 5, + "projection": [ + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageLive": 8 + } + }, + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "UnaryOp": [ + "PtrMetadata", + { + "Copy": { + "local": 2, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 8, + "projection": [] + }, + { + "BinaryOp": [ + "Gt", + { + "Copy": { + "local": 6, + "projection": [] + } + }, + { + "Copy": { + "local": 9, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 8, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "slice", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "new_len", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 6, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "rhs", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 7, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "ptr", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "offset", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 7, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "len", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": " as std::slice::SliceIndex<[i32]>>::index" + } + }, + "symbol_name": "_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 1, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "index", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::array::> for [i32; 4]>::index" + } + }, + "symbol_name": "_ZN4core5array85_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u3b$$u20$N$u5d$$GT$5index17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 9 + } + }, + { + "kind": { + "StorageLive": 10 + } + }, + { + "kind": { + "StorageLive": 6 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "UnaryOp": [ + "PtrMetadata", + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 7, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 6, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + } + ], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageLive": 8 + } + }, + { + "kind": { + "Assign": [ + { + "local": 10, + "projection": [] + }, + { + "AddressOf": [ + "Const", + { + "local": 1, + "projection": [ + "Deref" + ] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 8, + "projection": [] + }, + { + "Cast": [ + "PtrToPtr", + { + "Copy": { + "local": 10, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 8, + "projection": [ + "Deref" + ] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 1, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Copy": { + "local": 9, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 8 + } + }, + { + "kind": { + "StorageDead": 6 + } + }, + { + "kind": { + "StorageDead": 10 + } + }, + { + "kind": { + "StorageDead": 9 + } + }, + { + "kind": { + "StorageLive": 11 + } + }, + { + "kind": { + "Assign": [ + { + "local": 11, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 5, + "projection": [ + { + "Downcast": 1 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Copy": { + "local": 11, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 11 + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 3, + "projection": [ + { + "Downcast": 0 + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "StorageDead": 6 + } + }, + { + "kind": { + "StorageDead": 10 + } + }, + { + "kind": { + "StorageDead": 9 + } + }, + { + "kind": { + "StorageLive": 11 + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "StorageDead": 11 + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 1 + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "other", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "slice", + "source_info": { + "scope": 4 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 5 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "ptr", + "source_info": { + "scope": 6 + }, + "value": { + "Place": { + "local": 8, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "me", + "source_info": { + "scope": 7 + }, + "value": { + "Place": { + "local": 8, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 8 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 9 + }, + "value": { + "Place": { + "local": 5, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "err", + "source_info": { + "scope": 9 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "v", + "source_info": { + "scope": 10 + }, + "value": { + "Place": { + "local": 11, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 11 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "other", + "source_info": { + "scope": 11 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::array::equality:: for [i32]>::eq" + } + }, + "symbol_name": "_ZN4core5array8equality92_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$U$u3b$$u20$N$u5d$$GT$$u20$for$u20$$u5b$T$u5d$$GT$2eq17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref" + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "other", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::array::equality:: for &[i32]>::eq" + } + }, + "symbol_name": "_ZN4core5array8equality96_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$U$u3b$$u20$N$u5d$$GT$$u20$for$u20$$RF$$u5b$T$u5d$$GT$2eq17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 1, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "index", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "core::slice::index::> for [i32]>::index" + } + }, + "symbol_name": "_ZN4core5slice5index74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + { + "Array": 0 + }, + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 3, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 4, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Type": 0 + } + ], + null, + null + ] + }, + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 2, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Move": { + "local": 7, + "projection": [] + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 5, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 4 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 8, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN5slice4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Cast": [ + "Transmute", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "a", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "b", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": ">::spec_eq" + } + }, + "symbol_name": "_ZN69_$LT$T$u20$as$u20$core..array..equality..SpecArrayEq$LT$U$C$_$GT$$GT$7spec_eq17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "Usize" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + "tag_encoding": { + "Niche": { + "niche_start": 0, + "niche_variants": { + "end": 0, + "start": 0 + }, + "untagged_variant": 1 + } + }, + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option<&[i32; 2]>" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Union": { + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::option::Option" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 0, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + "tag_encoding": { + "Niche": { + "niche_start": 0, + "niche_variants": { + "end": 1, + "start": 1 + }, + "untagged_variant": 0 + } + }, + "tag_field": 0, + "variants": [ + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::result::Result<&[i32; 2], std::array::TryFromSliceError>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::array::TryFromSliceError" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ops::Range" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": false + } + }, + "abi_align": 4, + "fields": { + "Array": { + "count": 0, + "stride": { + "num_bits": 32 + } + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": null + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 4, + "fields": { + "Array": { + "count": 2, + "stride": { + "num_bits": 32 + } + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": { + "kind": { + "Value": [ + { + "align": 8, + "bytes": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + ] + } + } + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 4, + "fields": { + "Array": { + "count": 4, + "stride": { + "num_bits": 32 + } + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": { + "kind": { + "Value": [ + { + "align": 8, + "bytes": [ + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + ] + } + } + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/static-vtable-nonbuiltin-deref.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/static-vtable-nonbuiltin-deref.smir.json.expected new file mode 100644 index 00000000..032f4080 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/static-vtable-nonbuiltin-deref.smir.json.expected @@ -0,0 +1,2822 @@ +{ + "allocs": [ + { + "global_alloc": { + "Static": 0 + } + }, + { + "global_alloc": { + "VTable": [ + 0, + { + "bound_vars": [], + "value": { + "generic_args": [] + } + } + ] + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u8$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u8$GT$3fmt17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core4hint9black_box17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemStatic": { + "allocation": { + "align": 1, + "bytes": [ + 7 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + }, + "name": "S" + } + }, + "symbol_name": "_ZN30static_vtable_nonbuiltin_deref1S17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ], + [ + 8, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "BinaryOp": [ + "Lt", + { + "Copy": { + "local": 4, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 5, + "projection": [] + } + }, + "expected": true, + "msg": { + "BoundsCheck": { + "index": { + "Copy": { + "local": 4, + "projection": [] + } + }, + "len": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 3, + "projection": [ + { + "Index": 4 + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 1, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "main" + } + }, + "symbol_name": "_ZN30static_vtable_nonbuiltin_deref4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Move": { + "local": 4, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 2 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 6, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 6 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "BinaryOp": [ + "BitAnd", + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 0, + 0, + 0, + 4 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 6 + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 5, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 4 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 5, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Goto": { + "target": 6 + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "core::fmt::num::::fmt" + } + }, + "symbol_name": "_ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u8$GT$3fmt17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "std::hint::black_box::<&dyn std::fmt::Debug>" + } + }, + "symbol_name": "_ZN4core4hint9black_box17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U16" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "Usize" + } + } + ], + [ + { + "EnumType": { + "discriminants": [ + 0, + 1 + ], + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Multiple": { + "tag": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + }, + "tag_encoding": "Direct", + "tag_field": 0, + "variants": [ + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 8 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 1 + } + } + } + ] + } + } + }, + "name": "std::result::Result<(), std::fmt::Error>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Error" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 128 + }, + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::Formatter<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + }, + { + "num_bits": 48 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::fmt::FormattingOptions" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "ArrayType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Array": { + "count": 1, + "stride": { + "num_bits": 128 + } + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "size": { + "kind": { + "Value": [ + { + "align": 8, + "bytes": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + ] + } + } + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/strange-ref-deref.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/strange-ref-deref.smir.json.expected new file mode 100644 index 00000000..7906857a --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/strange-ref-deref.smir.json.expected @@ -0,0 +1,2117 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 42, + 98, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 2, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "CopyForDeref": { + "local": 3, + "projection": [ + "Deref" + ] + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 6, + "projection": [] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref" + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 4, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 42, + 1 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "b", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN17strange_ref_deref4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/struct.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/struct.smir.json.expected new file mode 100644 index 00000000..1883a1b9 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/struct.smir.json.expected @@ -0,0 +1,2315 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 46, + 97, + 32, + 43, + 32, + 49, + 32, + 61, + 61, + 32, + 115, + 46, + 98 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [], + null, + null + ] + }, + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 4, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 5, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Move": { + "local": 4, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 1, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 5, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 6, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 7, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "s", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN6struct4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "St" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/sum-to-n.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/sum-to-n.smir.json.expected new file mode 100644 index 00000000..bd76a407 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/sum-to-n.smir.json.expected @@ -0,0 +1,2789 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 99, + 101, + 115, + 115 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + [ + { + "NormalSym": "_ZN8sum_to_n13test_sum_to_n17h" + } + ], + [ + { + "NormalSym": "_ZN8sum_to_n8sum_to_n17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 55, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 1, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "n", + "source_info": { + "scope": 1 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "golden", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 55, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "sucess", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "test_sum_to_n" + } + }, + "symbol_name": "_ZN8sum_to_n13test_sum_to_n17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 1, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "main" + } + }, + "symbol_name": "_ZN8sum_to_n4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 1 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 3, + "projection": [] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "BinaryOp": [ + "Gt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 4, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 5 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 3, + "projection": [] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Add", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Copy": { + "local": 6, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 7, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Add", + { + "Copy": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 6, + "projection": [] + } + } + ] + }, + "target": 3, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 7, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 8, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 3, + "projection": [] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "CheckedBinaryOp": [ + "Sub", + { + "Copy": { + "local": 8, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Assert": { + "cond": { + "Move": { + "local": 9, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + }, + "expected": false, + "msg": { + "Overflow": [ + "Sub", + { + "Move": { + "local": 8, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Move": { + "local": 9, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 1 + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [] + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "n", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "sum", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "counter", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + } + ] + }, + "name": "sum_to_n" + } + }, + "symbol_name": "_ZN8sum_to_n8sum_to_n17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "Usize" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 1, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/tuple-eq.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/tuple-eq.smir.json.expected new file mode 100644 index 00000000..f23627e8 --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/tuple-eq.smir.json.expected @@ -0,0 +1,2801 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 116, + 117, + 112, + 32, + 61, + 61, + 32, + 40, + 52, + 50, + 44, + 32, + 57, + 57, + 41 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0, + 99, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3cmp5impls54_$LT$impl$u20$core..cmp..PartialEq$u20$for$u20$i32$GT$2eq17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core5tuple64_$LT$impl$u20$core..cmp..PartialEq$u20$for$u20$$LP$U$C$T$RP$$GT$2eq17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref" + ] + } + } + } + ] + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + "Deref" + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "BinaryOp": [ + "Eq", + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 4 + } + }, + { + "kind": { + "StorageDead": 3 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "other", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::cmp::impls::::eq" + } + }, + "symbol_name": "_ZN4core3cmp5impls54_$LT$impl$u20$core..cmp..PartialEq$u20$for$u20$i32$GT$2eq17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + ] + } + ] + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 2, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + }, + { + "Move": { + "local": 5, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 4 + } + }, + { + "kind": { + "StorageLive": 6 + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 1, + 0 + ] + } + ] + } + ] + } + ] + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 2, + "projection": [ + "Deref", + { + "Field": [ + 1, + 0 + ] + } + ] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 6, + "projection": [] + } + }, + { + "Move": { + "local": 7, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 4, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 5 + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 6 + } + } + ], + "terminator": { + "kind": { + "Goto": { + "target": 5 + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "other", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "core::tuple::::eq" + } + }, + "symbol_name": "_ZN4core5tuple64_$LT$impl$u20$core..cmp..PartialEq$u20$for$u20$$LP$U$C$T$RP$$GT$2eq17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + "Tuple", + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 99, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 1, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 3 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 33, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "tup", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN8tuple_eq4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/tuples-simple.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/tuples-simple.smir.json.expected new file mode 100644 index 00000000..509085da --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/tuples-simple.smir.json.expected @@ -0,0 +1,2111 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 116, + 117, + 112, + 46, + 48, + 32, + 33, + 61, + 32, + 116, + 117, + 112, + 46, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + "Tuple", + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 4, + "bytes": [ + 99, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "BinaryOp": [ + "Ne", + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 2, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 2 + ] + ], + "otherwise": 1 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 5, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "tup", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN13tuples_simple4main17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 4294967295, + "start": 0 + }, + "value": { + "Int": { + "length": "I32", + "signed": true + } + } + } + } + ] + }, + "abi_align": 4, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 32 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} diff --git a/tests/integration/expected/nightly-2025-07-05/weirdRefs.smir.json.expected b/tests/integration/expected/nightly-2025-07-05/weirdRefs.smir.json.expected new file mode 100644 index 00000000..370a8dad --- /dev/null +++ b/tests/integration/expected/nightly-2025-07-05/weirdRefs.smir.json.expected @@ -0,0 +1,3552 @@ +{ + "allocs": [ + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 46, + 97, + 95, + 116, + 104, + 105, + 114, + 100, + 32, + 61, + 61, + 32, + 52, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 46, + 97, + 95, + 118, + 97, + 108, + 117, + 101, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 46, + 97, + 95, + 118, + 97, + 108, + 117, + 101, + 32, + 61, + 61, + 32, + 52, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 46, + 97, + 110, + 111, + 116, + 104, + 101, + 114 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + }, + { + "global_alloc": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 118, + 118, + 32, + 61, + 61, + 32, + 52, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + } + ], + "functions": [ + [ + { + "IntrinsicSym": "black_box" + } + ], + [ + { + "NoOpSym": "" + } + ], + [ + { + "NormalSym": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + } + ], + [ + { + "NormalSym": "_ZN3std2rt19lang_start_internal17h" + } + ], + [ + { + "NormalSym": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core3ops8function6FnOnce9call_once17h" + } + ], + [ + { + "NormalSym": "_ZN4core9panicking5panic17h" + } + ], + [ + { + "NormalSym": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + } + ] + ], + "items": [ + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 4, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "StorageLive": 7 + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Aggregate": [ + { + "Closure": [ + 0, + [ + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + }, + { + "Type": 0 + } + ] + ] + }, + [ + { + "Copy": { + "local": 1, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + "Shared", + { + "local": 7, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Cast": [ + { + "PointerCoercion": "Unsize" + }, + { + "Copy": { + "local": 6, + "projection": [] + } + }, + 0 + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 5, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + }, + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 7 + } + }, + { + "kind": { + "StorageDead": 5 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": 2, + "composite": null, + "name": "argc", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": 3, + "composite": null, + "name": "argv", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 3, + "projection": [] + } + } + }, + { + "argument_index": 4, + "composite": null, + "name": "sigpipe", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 4, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>" + } + }, + "symbol_name": "_ZN3std2rt10lang_start17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "StorageLive": 2 + } + }, + { + "kind": { + "StorageLive": 3 + } + }, + { + "kind": { + "StorageLive": 4 + } + }, + { + "kind": { + "Assign": [ + { + "local": 4, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 4, + "projection": [] + } + } + ], + "destination": { + "local": 3, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 4 + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "StorageDead": 3 + } + }, + { + "kind": { + "StorageLive": 5 + } + }, + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 2, + "projection": [ + { + "Field": [ + 0, + 0 + ] + }, + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 5, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "StorageDead": 5 + } + }, + { + "kind": { + "StorageDead": 2 + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "main", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "self", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + } + ] + }, + "name": "std::rt::lang_start::<()>::{closure#0}" + } + }, + "symbol_name": "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [] + } + }, + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + ], + "destination": { + "local": 2, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 2, + "unwind": "Unreachable" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": 1, + "composite": null, + "name": "f", + "source_info": { + "scope": 0 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "result", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 0, + "projection": [] + } + } + }, + { + "argument_index": 1, + "composite": null, + "name": "dummy", + "source_info": { + "scope": 2 + }, + "value": { + "Const": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + } + } + ] + }, + "name": "std::sys::backtrace::__rust_begin_short_backtrace::" + } + }, + "symbol_name": "_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 1, + "projection": [ + "Deref" + ] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Move": { + "local": 1, + "projection": [] + } + }, + "target": 1, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": ">::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + } + ], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Move": { + "local": 3, + "projection": [] + } + }, + { + "Move": { + "local": 2, + "projection": [] + } + } + ], + "destination": { + "local": 0, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": 1, + "unwind": { + "Cleanup": 3 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 2, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Drop": { + "place": { + "local": 1, + "projection": [] + }, + "target": 4, + "unwind": "Terminate" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Resume" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + } + ], + "spread_arg": 2, + "var_debug_info": [] + }, + "name": "<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once" + } + }, + "symbol_name": "_ZN4core3ops8function6FnOnce9call_once17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 1, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 0, + "projection": [] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + } + ], + "terminator": { + "kind": "Return" + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Not" + } + ], + "spread_arg": null, + "var_debug_info": [] + }, + "name": "<() as std::process::Termination>::report" + } + }, + "symbol_name": "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h" + }, + { + "details": null, + "mono_item_kind": { + "MonoItemFn": { + "body": { + "arg_count": 0, + "blocks": [ + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 1, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [], + null, + null + ] + }, + [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 32 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + }, + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 2, + "projection": [ + "Deref" + ] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 42 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 3, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 3, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 42, + 1 + ] + ], + "otherwise": 2 + } + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 5, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 6, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 5, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 20, + "projection": [] + }, + { + "CopyForDeref": { + "local": 6, + "projection": [ + "Deref" + ] + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 20, + "projection": [ + "Deref" + ] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 43 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 7, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 7, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 43, + 3 + ] + ], + "otherwise": 4 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 33, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 0 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 4, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 10, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 1, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 9, + "projection": [] + }, + { + "Aggregate": [ + { + "Adt": [ + 0, + 0, + [ + { + "Lifetime": { + "kind": "ReErased" + } + } + ], + null, + null + ] + }, + [ + { + "Copy": { + "local": 10, + "projection": [] + } + } + ] + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 11, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 9, + "projection": [] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 21, + "projection": [] + }, + { + "CopyForDeref": { + "local": 11, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 12, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 21, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Copy": { + "local": 12, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 43, + 5 + ] + ], + "otherwise": 6 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 33, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 1 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 8, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 22, + "projection": [] + }, + { + "CopyForDeref": { + "local": 11, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 22, + "projection": [ + "Deref", + { + "Field": [ + 1, + 0 + ] + } + ] + }, + { + "Use": { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 1, + "bytes": [ + 1 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [] + } + } + } + }, + "user_ty": null + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 23, + "projection": [] + }, + { + "CopyForDeref": { + "local": 11, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 14, + "projection": [] + }, + { + "Ref": [ + { + "kind": "ReErased" + }, + { + "Mut": { + "kind": "Default" + } + }, + { + "local": 23, + "projection": [ + "Deref", + { + "Field": [ + 2, + 0 + ] + } + ] + } + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 24, + "projection": [] + }, + { + "CopyForDeref": { + "local": 11, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 15, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 24, + "projection": [ + "Deref", + { + "Field": [ + 0, + 0 + ] + } + ] + } + } + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 14, + "projection": [ + "Deref" + ] + }, + { + "Cast": [ + "IntToInt", + { + "Move": { + "local": 15, + "projection": [] + } + }, + 0 + ] + } + ] + } + }, + { + "kind": { + "Assign": [ + { + "local": 16, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 1, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 16, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 0, + 8 + ] + ], + "otherwise": 7 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 2 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 13, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [ + { + "kind": { + "Assign": [ + { + "local": 18, + "projection": [] + }, + { + "Use": { + "Copy": { + "local": 1, + "projection": [ + { + "Field": [ + 2, + 0 + ] + } + ] + } + } + } + ] + } + } + ], + "terminator": { + "kind": { + "SwitchInt": { + "discr": { + "Move": { + "local": 18, + "projection": [] + } + }, + "targets": { + "branches": [ + [ + 43, + 9 + ] + ], + "otherwise": 10 + } + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 3 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 17, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + }, + { + "statements": [], + "terminator": { + "kind": "Return" + } + }, + { + "statements": [], + "terminator": { + "kind": { + "Call": { + "args": [ + { + "Constant": { + "const_": { + "kind": { + "Allocated": { + "align": 8, + "bytes": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 33, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "mutability": "Mut", + "provenance": { + "ptrs": [ + [ + 0, + 4 + ] + ] + } + } + } + }, + "user_ty": null + } + } + ], + "destination": { + "local": 19, + "projection": [] + }, + "func": { + "Constant": { + "const_": { + "kind": "ZeroSized" + }, + "user_ty": null + } + }, + "target": null, + "unwind": "Continue" + } + } + } + } + ], + "locals": [ + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Not" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + }, + { + "mutability": "Mut" + } + ], + "spread_arg": null, + "var_debug_info": [ + { + "argument_index": null, + "composite": null, + "name": "a", + "source_info": { + "scope": 1 + }, + "value": { + "Place": { + "local": 1, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "r1", + "source_info": { + "scope": 2 + }, + "value": { + "Place": { + "local": 2, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "r1", + "source_info": { + "scope": 3 + }, + "value": { + "Place": { + "local": 5, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "r2", + "source_info": { + "scope": 4 + }, + "value": { + "Place": { + "local": 6, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "e", + "source_info": { + "scope": 5 + }, + "value": { + "Place": { + "local": 9, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "ee", + "source_info": { + "scope": 6 + }, + "value": { + "Place": { + "local": 11, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "vv", + "source_info": { + "scope": 7 + }, + "value": { + "Place": { + "local": 12, + "projection": [] + } + } + }, + { + "argument_index": null, + "composite": null, + "name": "r3", + "source_info": { + "scope": 8 + }, + "value": { + "Place": { + "local": 14, + "projection": [] + } + } + } + ] + }, + "name": "main" + } + }, + "symbol_name": "_ZN9weirdRefs4main17h" + } + ], + "types": [ + [ + { + "PrimitiveType": "Bool" + } + ], + [ + { + "PrimitiveType": "Str" + } + ], + [ + { + "PrimitiveType": { + "Int": "I32" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "I8" + } + } + ], + [ + { + "PrimitiveType": { + "Int": "Isize" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U32" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "U8" + } + } + ], + [ + { + "PrimitiveType": { + "Uint": "Usize" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "Enclosing<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 64 + }, + { + "num_bits": 72 + }, + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "MyStruct" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::marker::PhantomData<&str>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 128 + }, + { + "num_bits": 160 + }, + { + "num_bits": 192 + } + ] + } + }, + "size": { + "num_bits": 192 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::panic::Location<'_>" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::process::ExitCode" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::ptr::NonNull" + } + } + ], + [ + { + "StructType": { + "fields": "elided", + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 255, + "start": 0 + }, + "value": { + "Int": { + "length": "I8", + "signed": false + } + } + } + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + } + ] + } + }, + "size": { + "num_bits": 8 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "name": "std::sys::process::unix::common::ExitCode" + } + } + ], + [ + { + "TupleType": { + "layout": { + "abi": { + "Aggregate": { + "sized": true + } + }, + "abi_align": 1, + "fields": { + "Arbitrary": { + "offsets": [] + } + }, + "size": { + "num_bits": 0 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "types": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "PtrType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Mut", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "Scalar": { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + }, + "abi_align": 8, + "fields": "Primitive", + "size": { + "num_bits": 64 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 0 + }, + "value": { + "Int": { + "length": "I64", + "signed": false + } + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "RefType": { + "layout": { + "abi": { + "ScalarPair": [ + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + }, + { + "Initialized": { + "valid_range": { + "end": 18446744073709551615, + "start": 1 + }, + "value": { + "Pointer": 0 + } + } + } + ] + }, + "abi_align": 8, + "fields": { + "Arbitrary": { + "offsets": [ + { + "num_bits": 0 + }, + { + "num_bits": 64 + } + ] + } + }, + "size": { + "num_bits": 128 + }, + "variants": { + "Single": { + "index": 0 + } + } + }, + "mutability": "Not", + "pointee_type": "elided" + } + } + ], + [ + { + "FunType": "{closure@std::rt::lang_start<()>::{closure#0}}" + } + ] + ] +} From 9e0b22776326646f174541d52c1e7e83764a3963 Mon Sep 17 00:00:00 2001 From: cds-amal Date: Tue, 10 Mar 2026 18:29:41 -0400 Subject: [PATCH 3/3] bump pinned nightly to 2025-07-05 --- rust-toolchain.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 06f099e1..e76ea1b6 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2024-11-29" +channel = "nightly-2025-07-05" components = ["llvm-tools", "rustc-dev", "rust-src", "rust-analyzer"]