From b7a5586e7fd0c68b798aa7a3224e39e547329e30 Mon Sep 17 00:00:00 2001 From: Stevengre Date: Tue, 9 Sep 2025 14:41:17 +0800 Subject: [PATCH 1/3] Save current state before schema validation analysis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- schema/stable-mir.schema.json | 1448 +++++++++++++++++ tests/integration/programs/binop.smir.json | 1 + .../programs/closure-args.smir.json | 1 + .../programs/closure-no-args.smir.json | 1 + .../programs/double-ref-deref.smir.json | 1 + tests/integration/programs/float.smir.json | 1 + .../programs/param_types.smir.json | 1 + .../programs/recursion-simple.smir.json | 1 + .../integration/programs/ref-deref.smir.json | 1 + tests/integration/programs/shl_min.smir.json | 1 + tests/integration/programs/slice.smir.json | 1 + tests/integration/programs/sum-to-n.smir.json | 1 + 12 files changed, 1459 insertions(+) create mode 100644 schema/stable-mir.schema.json create mode 100644 tests/integration/programs/binop.smir.json create mode 100644 tests/integration/programs/closure-args.smir.json create mode 100644 tests/integration/programs/closure-no-args.smir.json create mode 100644 tests/integration/programs/double-ref-deref.smir.json create mode 100644 tests/integration/programs/float.smir.json create mode 100644 tests/integration/programs/param_types.smir.json create mode 100644 tests/integration/programs/recursion-simple.smir.json create mode 100644 tests/integration/programs/ref-deref.smir.json create mode 100644 tests/integration/programs/shl_min.smir.json create mode 100644 tests/integration/programs/slice.smir.json create mode 100644 tests/integration/programs/sum-to-n.smir.json diff --git a/schema/stable-mir.schema.json b/schema/stable-mir.schema.json new file mode 100644 index 0000000..80c7da0 --- /dev/null +++ b/schema/stable-mir.schema.json @@ -0,0 +1,1448 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://runtimeverification.com/schemas/stable-mir.schema.json", + "title": "Stable MIR JSON Schema", + "description": "JSON Schema for Rust Stable MIR (Mid-level Intermediate Representation) output generated by stable-mir-json tool", + "version": "1.0.0", + "type": "object", + "required": ["allocs", "functions", "items", "types"], + "properties": { + "allocs": { + "description": "Memory allocations used by the program", + "type": "array", + "items": { + "type": "array", + "items": { "$ref": "#/$defs/Allocation" } + } + }, + "functions": { + "description": "Function symbols referenced in the program", + "type": "array", + "items": { + "type": "array", + "items": { "$ref": "#/$defs/FunctionSymbol" }, + "minItems": 1, + "maxItems": 1 + } + }, + "items": { + "description": "Monomorphized items (functions, statics, etc.) in the program", + "type": "array", + "items": { "$ref": "#/$defs/MonoItem" } + }, + "types": { + "description": "Type information with layout data", + "type": "array", + "items": { + "type": "array", + "items": { "$ref": "#/$defs/TypeData" }, + "minItems": 1, + "maxItems": 1 + } + } + }, + "$defs": { + "Allocation": { + "description": "Memory allocation data", + "type": "object", + "oneOf": [ + { + "type": "object", + "properties": { + "Memory": { + "type": "object", + "required": ["align", "bytes", "mutability", "provenance"], + "properties": { + "align": { + "description": "Memory alignment requirement", + "type": "integer", + "minimum": 1 + }, + "bytes": { + "description": "Raw byte data", + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 255 + } + }, + "mutability": { "$ref": "#/$defs/Mutability" }, + "provenance": { + "description": "Pointer provenance information", + "type": "object", + "required": ["ptrs"], + "properties": { + "ptrs": { + "description": "Pointer references as [offset, allocation_id] pairs", + "type": "array", + "items": { + "type": "array", + "items": { "type": "integer" }, + "minItems": 2, + "maxItems": 2 + } + } + } + } + } + } + }, + "required": ["Memory"], + "additionalProperties": false + } + ] + }, + "FunctionSymbol": { + "description": "Function symbol reference", + "oneOf": [ + { + "type": "object", + "properties": { + "NormalSym": { + "description": "Regular function symbol (mangled name)", + "type": "string" + } + }, + "required": ["NormalSym"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "IntrinsicSym": { + "description": "Intrinsic function name", + "type": "string" + } + }, + "required": ["IntrinsicSym"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "NoOpSym": { + "description": "No-operation symbol (usually empty)", + "type": "string" + } + }, + "required": ["NoOpSym"], + "additionalProperties": false + } + ] + }, + "MonoItem": { + "description": "A monomorphized item (function, static, global asm)", + "type": "object", + "required": ["details", "mono_item_kind", "symbol_name"], + "properties": { + "details": { + "description": "Additional details about the item (usually null)", + "type": ["null", "object"] + }, + "mono_item_kind": { "$ref": "#/$defs/MonoItemKind" }, + "symbol_name": { + "description": "Mangled symbol name", + "type": "string" + } + } + }, + "MonoItemKind": { + "description": "The kind of monomorphic item", + "oneOf": [ + { + "type": "object", + "properties": { + "MonoItemFn": { "$ref": "#/$defs/MonoItemFnData" } + }, + "required": ["MonoItemFn"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MonoItemStatic": { "$ref": "#/$defs/MonoItemStaticData" } + }, + "required": ["MonoItemStatic"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MonoItemGlobalAsm": { "$ref": "#/$defs/MonoItemGlobalAsmData" } + }, + "required": ["MonoItemGlobalAsm"], + "additionalProperties": false + } + ] + }, + "MonoItemFnData": { + "description": "Function item with MIR body", + "type": "object", + "required": ["body", "id", "name"], + "properties": { + "body": { + "oneOf": [ + { "$ref": "#/$defs/Body" }, + { + "type": "array", + "items": { "$ref": "#/$defs/Body" } + } + ] + }, + "id": { + "description": "Function definition ID", + "type": "integer" + }, + "name": { + "description": "Function name", + "type": "string" + } + } + }, + "MonoItemStaticData": { + "description": "Static item data", + "type": "object" + }, + "MonoItemGlobalAsmData": { + "description": "Global assembly item data", + "type": "object" + }, + "Body": { + "description": "MIR function body", + "type": "object", + "required": ["arg_count", "blocks", "locals", "span", "spread_arg", "var_debug_info"], + "properties": { + "arg_count": { + "description": "Number of function arguments", + "type": "integer", + "minimum": 0 + }, + "blocks": { + "description": "Basic blocks in the function", + "type": "array", + "items": { "$ref": "#/$defs/BasicBlock" } + }, + "locals": { + "description": "Local variable declarations", + "type": "array", + "items": { "$ref": "#/$defs/LocalDecl" } + }, + "span": { "$ref": "#/$defs/Span" }, + "spread_arg": { + "description": "Position of spread argument (for variadic functions)", + "type": ["integer", "null"] + }, + "var_debug_info": { + "description": "Debug information for variables", + "type": "array", + "items": { "$ref": "#/$defs/VarDebugInfo" } + } + } + }, + "BasicBlock": { + "description": "A basic block in MIR", + "type": "object", + "required": ["statements", "terminator"], + "properties": { + "statements": { + "description": "MIR statements in this block", + "type": "array", + "items": { "$ref": "#/$defs/Statement" } + }, + "terminator": { "$ref": "#/$defs/Terminator" } + } + }, + "Statement": { + "description": "A MIR statement", + "type": "object", + "required": ["kind", "span"], + "properties": { + "kind": { "$ref": "#/$defs/StatementKind" }, + "span": { "$ref": "#/$defs/Span" } + } + }, + "StatementKind": { + "description": "The kind of MIR statement", + "oneOf": [ + { + "type": "object", + "properties": { + "Assign": { + "description": "Assignment statement [place, rvalue]", + "type": "array", + "items": [ + { "$ref": "#/$defs/Place" }, + { "$ref": "#/$defs/Rvalue" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["Assign"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StorageLive": { + "description": "Mark local as live", + "type": "integer" + } + }, + "required": ["StorageLive"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StorageDead": { + "description": "Mark local as dead", + "type": "integer" + } + }, + "required": ["StorageDead"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Intrinsic": { + "description": "Intrinsic operation" + } + }, + "required": ["Intrinsic"], + "additionalProperties": false + }, + { + "type": "string", + "enum": ["Nop"] + } + ] + }, + "Terminator": { + "description": "Basic block terminator", + "type": "object", + "required": ["kind", "span"], + "properties": { + "kind": { "$ref": "#/$defs/TerminatorKind" }, + "span": { "$ref": "#/$defs/Span" } + } + }, + "TerminatorKind": { + "description": "The kind of terminator", + "oneOf": [ + { + "type": "string", + "enum": ["Return", "Resume", "Terminate", "Unreachable"] + }, + { + "type": "object", + "properties": { + "Goto": { + "type": "object", + "required": ["target"], + "properties": { + "target": { + "description": "Target basic block index", + "type": "integer" + } + } + } + }, + "required": ["Goto"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SwitchInt": { + "type": "object", + "required": ["discr", "targets"], + "properties": { + "discr": { "$ref": "#/$defs/Operand" }, + "targets": { "$ref": "#/$defs/SwitchTargets" } + } + } + }, + "required": ["SwitchInt"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Call": { + "type": "object", + "required": ["args", "destination", "func", "target", "unwind"], + "properties": { + "args": { + "description": "Function call arguments", + "type": "array", + "items": { "$ref": "#/$defs/Operand" } + }, + "destination": { "$ref": "#/$defs/Place" }, + "func": { "$ref": "#/$defs/Operand" }, + "target": { + "description": "Target basic block after call", + "type": ["integer", "null"] + }, + "unwind": { "$ref": "#/$defs/UnwindAction" } + } + } + }, + "required": ["Call"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Assert": { + "type": "object", + "required": ["cond", "expected", "msg", "target", "unwind"], + "properties": { + "cond": { "$ref": "#/$defs/Operand" }, + "expected": { + "description": "Expected boolean value", + "type": "boolean" + }, + "msg": { "$ref": "#/$defs/AssertMessage" }, + "target": { + "description": "Target basic block if assertion succeeds", + "type": "integer" + }, + "unwind": { "$ref": "#/$defs/UnwindAction" } + } + } + }, + "required": ["Assert"], + "additionalProperties": false + } + ] + }, + "Place": { + "description": "A place in MIR (local variable with projections)", + "type": "object", + "required": ["local", "projection"], + "properties": { + "local": { + "description": "Local variable index", + "type": "integer", + "minimum": 0 + }, + "projection": { + "description": "Sequence of projections (field access, deref, etc.)", + "type": "array", + "items": { "$ref": "#/$defs/ProjectionElem" } + } + } + }, + "ProjectionElem": { + "description": "Element of a place projection", + "oneOf": [ + { + "type": "string", + "enum": ["Deref"] + }, + { + "type": "object", + "properties": { + "Field": { + "description": "Field access [field_index, type_index]", + "type": "array", + "items": { "type": "integer" }, + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["Field"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Index": { "$ref": "#/$defs/Operand" } + }, + "required": ["Index"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ConstantIndex": { + "type": "object", + "required": ["offset", "min_length", "from_end"], + "properties": { + "offset": { "type": "integer" }, + "min_length": { "type": "integer" }, + "from_end": { "type": "boolean" } + } + } + }, + "required": ["ConstantIndex"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Subslice": { + "type": "object", + "required": ["from", "to", "from_end"], + "properties": { + "from": { "type": "integer" }, + "to": { "type": "integer" }, + "from_end": { "type": "boolean" } + } + } + }, + "required": ["Subslice"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Downcast": { + "description": "Enum variant downcast to variant index", + "type": "integer" + } + }, + "required": ["Downcast"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "OpaqueCast": { + "description": "Opaque type cast to type index", + "type": "integer" + } + }, + "required": ["OpaqueCast"], + "additionalProperties": false + } + ] + }, + "Rvalue": { + "description": "Right-hand side value in assignment", + "oneOf": [ + { + "type": "object", + "properties": { + "Use": { "$ref": "#/$defs/Operand" } + }, + "required": ["Use"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Repeat": { + "description": "Repeat value to create array [operand, count]", + "type": "array", + "items": [ + { "$ref": "#/$defs/Operand" }, + { "$ref": "#/$defs/Const" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["Repeat"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Ref": { + "description": "Create reference [region, borrow_kind, place]", + "type": "array", + "items": [ + { "$ref": "#/$defs/Region" }, + { "$ref": "#/$defs/BorrowKind" }, + { "$ref": "#/$defs/Place" } + ], + "minItems": 3, + "maxItems": 3 + } + }, + "required": ["Ref"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ThreadLocalRef": { + "description": "Reference to thread-local static", + "type": "integer" + } + }, + "required": ["ThreadLocalRef"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "AddressOf": { + "description": "Raw pointer to place [mutability, place]", + "type": "array", + "items": [ + { "$ref": "#/$defs/Mutability" }, + { "$ref": "#/$defs/Place" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["AddressOf"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Len": { + "description": "Length of array or slice", + "$ref": "#/$defs/Place" + } + }, + "required": ["Len"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Cast": { + "description": "Type cast [kind, operand, target_type]", + "type": "array", + "items": [ + { "$ref": "#/$defs/CastKind" }, + { "$ref": "#/$defs/Operand" }, + { "$ref": "#/$defs/TypeIndex" } + ], + "minItems": 3, + "maxItems": 3 + } + }, + "required": ["Cast"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "BinaryOp": { + "description": "Binary operation [op, left, right]", + "type": "array", + "items": [ + { "$ref": "#/$defs/BinOp" }, + { "$ref": "#/$defs/Operand" }, + { "$ref": "#/$defs/Operand" } + ], + "minItems": 3, + "maxItems": 3 + } + }, + "required": ["BinaryOp"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "CheckedBinaryOp": { + "description": "Checked binary operation [op, left, right]", + "type": "array", + "items": [ + { "$ref": "#/$defs/BinOp" }, + { "$ref": "#/$defs/Operand" }, + { "$ref": "#/$defs/Operand" } + ], + "minItems": 3, + "maxItems": 3 + } + }, + "required": ["CheckedBinaryOp"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "NullaryOp": { + "description": "Nullary operation [op, type]", + "type": "array", + "items": [ + { "$ref": "#/$defs/NullOp" }, + { "$ref": "#/$defs/TypeIndex" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["NullaryOp"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "UnaryOp": { + "description": "Unary operation [op, operand]", + "type": "array", + "items": [ + { "$ref": "#/$defs/UnOp" }, + { "$ref": "#/$defs/Operand" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["UnaryOp"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Discriminant": { + "description": "Get enum discriminant", + "$ref": "#/$defs/Place" + } + }, + "required": ["Discriminant"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Aggregate": { + "description": "Aggregate construction [kind, operands]", + "type": "array", + "items": [ + { "$ref": "#/$defs/AggregateKind" }, + { + "type": "array", + "items": { "$ref": "#/$defs/Operand" } + } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["Aggregate"], + "additionalProperties": false + } + ] + }, + "Operand": { + "description": "MIR operand (value that can be consumed by operations)", + "oneOf": [ + { + "type": "object", + "properties": { + "Copy": { + "description": "Copy value from place", + "$ref": "#/$defs/Place" + } + }, + "required": ["Copy"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Move": { + "description": "Move value from place", + "$ref": "#/$defs/Place" + } + }, + "required": ["Move"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Constant": { + "description": "Constant value", + "$ref": "#/$defs/Const" + } + }, + "required": ["Constant"], + "additionalProperties": false + } + ] + }, + "Const": { + "description": "Constant value", + "type": "object", + "required": ["const_", "span", "user_ty"], + "properties": { + "const_": { "$ref": "#/$defs/ConstData" }, + "span": { "$ref": "#/$defs/Span" }, + "user_ty": { + "description": "User type annotation", + "type": ["null", "object"] + } + } + }, + "ConstData": { + "description": "Constant data", + "type": "object", + "required": ["id", "kind", "ty"], + "properties": { + "id": { + "description": "Constant ID", + "type": "integer" + }, + "kind": { "$ref": "#/$defs/ConstKind" }, + "ty": { "$ref": "#/$defs/TypeIndex" } + } + }, + "ConstKind": { + "description": "Kind of constant", + "oneOf": [ + { + "type": "string", + "enum": ["ZeroSized"] + }, + { + "type": "object", + "properties": { + "Allocated": { + "type": "object", + "required": ["align", "bytes", "mutability", "provenance"], + "properties": { + "align": { "type": "integer", "minimum": 1 }, + "bytes": { + "type": "array", + "items": { "type": "integer", "minimum": 0, "maximum": 255 } + }, + "mutability": { "$ref": "#/$defs/Mutability" }, + "provenance": { + "type": "object", + "required": ["ptrs"], + "properties": { + "ptrs": { + "type": "array", + "items": { + "type": "array", + "items": { "type": "integer" }, + "minItems": 2, + "maxItems": 2 + } + } + } + } + } + } + }, + "required": ["Allocated"], + "additionalProperties": false + } + ] + }, + "LocalDecl": { + "description": "Local variable declaration", + "type": "object", + "required": ["mutability", "span", "ty"], + "properties": { + "mutability": { "$ref": "#/$defs/Mutability" }, + "span": { "$ref": "#/$defs/Span" }, + "ty": { "$ref": "#/$defs/TypeIndex" } + } + }, + "VarDebugInfo": { + "description": "Debug information for a variable", + "type": "object" + }, + "TypeData": { + "description": "Type information with layout", + "oneOf": [ + { + "type": "object", + "properties": { + "PrimitiveType": { "$ref": "#/$defs/PrimitiveTy" } + }, + "required": ["PrimitiveType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "TupleType": { + "type": "object", + "required": ["layout", "types"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "types": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { + "type": "array", + "items": { "$ref": "#/$defs/TypeIndex" } + } + ] + } + } + } + }, + "required": ["TupleType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ArrayType": { + "type": "object", + "required": ["layout", "size"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "size": { + "description": "Array size (null for unsized arrays)", + "type": ["integer", "null"] + } + } + } + }, + "required": ["ArrayType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StructType": { + "type": "object", + "required": ["layout", "name", "fields"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "name": { + "description": "Struct name", + "type": "string" + }, + "fields": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { "$ref": "#/$defs/FieldData" } + ] + } + } + } + }, + "required": ["StructType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "EnumType": { + "type": "object", + "required": ["layout", "name", "discriminants", "fields"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "name": { + "description": "Enum name", + "type": "string" + }, + "discriminants": { + "description": "Discriminant values for each variant", + "type": "array", + "items": { "type": "integer" } + }, + "fields": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { "$ref": "#/$defs/FieldData" } + ] + } + } + } + }, + "required": ["EnumType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "PtrType": { + "type": "object", + "required": ["layout", "pointee_type"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "pointee_type": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { "$ref": "#/$defs/TypeIndex" } + ] + } + } + } + }, + "required": ["PtrType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RefType": { + "type": "object", + "required": ["layout", "pointee_type"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "pointee_type": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { "$ref": "#/$defs/TypeIndex" } + ] + } + } + } + }, + "required": ["RefType"], + "additionalProperties": false + } + ] + }, + "LayoutData": { + "description": "Type layout information", + "type": "object", + "required": ["abi", "abi_align", "fields", "size", "variants"], + "properties": { + "abi": { "$ref": "#/$defs/Abi" }, + "abi_align": { + "description": "ABI-required alignment", + "type": "integer", + "minimum": 1 + }, + "fields": { "$ref": "#/$defs/FieldsShape" }, + "size": { "$ref": "#/$defs/Size" }, + "variants": { "$ref": "#/$defs/Variants" } + } + }, + "PrimitiveTy": { + "description": "Primitive type", + "oneOf": [ + { + "type": "string", + "enum": ["Bool", "Char", "Str"] + }, + { + "type": "object", + "properties": { + "Int": { + "type": "string", + "enum": ["I8", "I16", "I32", "I64", "I128", "Isize"] + } + }, + "required": ["Int"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Uint": { + "type": "string", + "enum": ["U8", "U16", "U32", "U64", "U128", "Usize"] + } + }, + "required": ["Uint"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Float": { + "type": "string", + "enum": ["F32", "F64"] + } + }, + "required": ["Float"], + "additionalProperties": false + } + ] + }, + "Mutability": { + "description": "Mutability of a binding or memory location", + "type": "string", + "enum": ["Mut", "Not"] + }, + "Span": { + "description": "Source code span (index into spans table)", + "type": "integer", + "minimum": 0 + }, + "TypeIndex": { + "description": "Index into the types array", + "type": "integer", + "minimum": 0 + }, + "BinOp": { + "description": "Binary operation", + "type": "string", + "enum": [ + "Add", "Sub", "Mul", "Div", "Rem", + "BitXor", "BitAnd", "BitOr", "Shl", "Shr", + "Eq", "Lt", "Le", "Ne", "Ge", "Gt", + "Offset" + ] + }, + "UnOp": { + "description": "Unary operation", + "type": "string", + "enum": ["Not", "Neg"] + }, + "NullOp": { + "description": "Nullary operation", + "type": "string", + "enum": ["SizeOf", "AlignOf", "OffsetOf"] + }, + "CastKind": { + "description": "Type cast kind", + "oneOf": [ + { + "type": "string", + "enum": [ + "IntToInt", "FloatToInt", "FloatToFloat", "IntToFloat", + "PtrToPtr", "FnPtrToPtr", "Transmute" + ] + }, + { + "type": "object", + "properties": { + "PointerCoercion": { "$ref": "#/$defs/PointerCoercion" } + }, + "required": ["PointerCoercion"], + "additionalProperties": false + } + ] + }, + "PointerCoercion": { + "description": "Pointer coercion kind", + "type": "string", + "enum": ["ReifyFnPointer", "UnsafeFnPointer", "ClosureFnPointer", "MutToConstPointer", "ArrayToPointer"] + }, + "BorrowKind": { + "description": "Kind of borrow", + "type": "string", + "enum": ["Shared", "Mut", "Unique"] + }, + "Region": { + "description": "Lifetime region", + "type": "object" + }, + "UnwindAction": { + "description": "What to do on unwinding", + "oneOf": [ + { + "type": "string", + "enum": ["Continue", "Unreachable", "Terminate"] + }, + { + "type": "object", + "properties": { + "Cleanup": { + "description": "Jump to cleanup block", + "type": "integer" + } + }, + "required": ["Cleanup"], + "additionalProperties": false + } + ] + }, + "AggregateKind": { + "description": "Kind of aggregate construction", + "oneOf": [ + { + "type": "object", + "properties": { + "Array": { + "description": "Array construction with type index", + "type": "integer" + } + }, + "required": ["Array"], + "additionalProperties": false + }, + { + "type": "string", + "enum": ["Tuple"] + }, + { + "type": "object", + "properties": { + "Adt": { + "description": "ADT construction [def, variant, args, def_id]", + "type": "array", + "items": [ + { "type": "object" }, + { "type": "integer" }, + { "type": "object" }, + { "type": "integer" } + ], + "minItems": 4, + "maxItems": 4 + } + }, + "required": ["Adt"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Closure": { + "description": "Closure construction [def_id, args]", + "type": "array", + "items": [ + { "type": "integer" }, + { "type": "object" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["Closure"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Coroutine": { + "description": "Generator construction [def_id, args, movability]", + "type": "array", + "items": [ + { "type": "integer" }, + { "type": "object" }, + { "type": "string" } + ], + "minItems": 3, + "maxItems": 3 + } + }, + "required": ["Coroutine"], + "additionalProperties": false + } + ] + }, + "SwitchTargets": { + "description": "Switch targets for SwitchInt", + "type": "object" + }, + "AssertMessage": { + "description": "Runtime assertion message", + "oneOf": [ + { + "type": "object", + "properties": { + "Overflow": { + "description": "Arithmetic overflow [op, left, right]", + "type": "array", + "items": [ + { "$ref": "#/$defs/BinOp" }, + { "$ref": "#/$defs/Operand" }, + { "$ref": "#/$defs/Operand" } + ], + "minItems": 3, + "maxItems": 3 + } + }, + "required": ["Overflow"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "RemainderByZero": { "$ref": "#/$defs/Operand" } + }, + "required": ["RemainderByZero"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "DivisionByZero": { "$ref": "#/$defs/Operand" } + }, + "required": ["DivisionByZero"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "BoundsCheck": { + "description": "Bounds check [len, index]", + "type": "array", + "items": [ + { "$ref": "#/$defs/Operand" }, + { "$ref": "#/$defs/Operand" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["BoundsCheck"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "MisalignedPointerDereference": { + "description": "Misaligned pointer dereference", + "type": "array" + } + }, + "required": ["MisalignedPointerDereference"], + "additionalProperties": false + } + ] + }, + "Abi": { + "description": "ABI representation of a type", + "oneOf": [ + { + "type": "string", + "enum": ["Uninhabited"] + }, + { + "type": "object", + "properties": { + "Scalar": { "$ref": "#/$defs/Scalar" } + }, + "required": ["Scalar"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ScalarPair": { + "description": "Pair of scalars [first, second]", + "type": "array", + "items": { "$ref": "#/$defs/Scalar" }, + "minItems": 2, + "maxItems": 2 + } + }, + "required": ["ScalarPair"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Vector": { + "description": "Vector type", + "type": "object" + } + }, + "required": ["Vector"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Aggregate": { + "type": "object", + "required": ["sized"], + "properties": { + "sized": { + "description": "Whether the aggregate is sized", + "type": "boolean" + } + } + } + }, + "required": ["Aggregate"], + "additionalProperties": false + } + ] + }, + "Scalar": { + "description": "Scalar ABI representation", + "type": "object" + }, + "FieldsShape": { + "description": "Layout of fields in a type", + "oneOf": [ + { + "type": "string", + "enum": ["Primitive"] + }, + { + "type": "object", + "properties": { + "Union": { + "description": "Union with field count", + "type": "integer" + } + }, + "required": ["Union"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Array": { + "type": "object", + "required": ["count", "stride"], + "properties": { + "count": { "type": "integer" }, + "stride": { "$ref": "#/$defs/Size" } + } + } + }, + "required": ["Array"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Arbitrary": { + "type": "object", + "required": ["offsets"], + "properties": { + "offsets": { + "type": "array", + "items": { "$ref": "#/$defs/Size" } + } + } + } + }, + "required": ["Arbitrary"], + "additionalProperties": false + } + ] + }, + "Size": { + "description": "Size in bytes", + "type": "integer", + "minimum": 0 + }, + "Variants": { + "description": "Variant layout information", + "oneOf": [ + { + "type": "object", + "properties": { + "Single": { + "type": "object", + "required": ["index"], + "properties": { + "index": { + "description": "Single variant index", + "type": "integer" + } + } + } + }, + "required": ["Single"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Multiple": { + "description": "Multiple variants (enum layout)", + "type": "object" + } + }, + "required": ["Multiple"], + "additionalProperties": false + } + ] + }, + "FieldData": { + "description": "Field layout and type information", + "type": "object" + } + } +} \ No newline at end of file diff --git a/tests/integration/programs/binop.smir.json b/tests/integration/programs/binop.smir.json new file mode 100644 index 0000000..6c571bb --- /dev/null +++ b/tests/integration/programs/binop.smir.json @@ -0,0 +1 @@ +{"name":"binop","crate_id":17408026594985932799,"allocs":[[26,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[27,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[28,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[29,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[30,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[31,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[32,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[33,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[34,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[35,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[36,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[37,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[38,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[39,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[40,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[41,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[42,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[43,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[44,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[45,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[46,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[47,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[48,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[49,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[50,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[51,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h993f85f519f5b8ceE"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h167a1509e5cb3a40E"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h93c792780d64baa6E"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17ha0408a73f669d52bE"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf63809dd53bdec2aE"}],[26,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[31,{"NormalSym":"_ZN5binop10test_binop17h9a8f345ced0a25a7E"}],[32,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN3std2rt10lang_start17h66e413eb59b89654E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf63809dd53bdec2aE","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h993f85f519f5b8ceE","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h7e6a26481f47e922E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h93c792780d64baa6E","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17ha0408a73f669d52bE","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17hb938e4f90ac56efcE","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h167a1509e5cb3a40E","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null},{"symbol_name":"_ZN5binop10test_binop17h9a8f345ced0a25a7E","mono_item_kind":{"MonoItemFn":{"name":"test_binop","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":4,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":50}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":4,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":1,"unwind":"Continue"}},"span":50}},{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Move":{"local":4,"projection":[{"Field":[0,16]}]}}}]},"span":50}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":3,"projection":[]}},"targets":{"branches":[[52,2]],"otherwise":3}}},"span":51}},{"statements":[{"kind":{"Assign":[{"local":7,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":52}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":7,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":4,"unwind":"Continue"}},"span":52}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":53,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":27,"id":10}}}],"destination":{"local":5,"projection":[]},"target":null,"unwind":"Continue"}},"span":53}},{"statements":[{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Move":{"local":7,"projection":[{"Field":[0,16]}]}}}]},"span":52}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":6,"projection":[]}},"targets":{"branches":[[52,5]],"otherwise":6}}},"span":54}},{"statements":[{"kind":{"Assign":[{"local":11,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":55}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":11,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":7,"unwind":"Continue"}},"span":55}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":56,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,1]]},"align":8,"mutability":"Mut"}},"ty":27,"id":11}}}],"destination":{"local":8,"projection":[]},"target":null,"unwind":"Continue"}},"span":56}},{"statements":[{"kind":{"Assign":[{"local":10,"projection":[]},{"Use":{"Move":{"local":11,"projection":[{"Field":[0,16]}]}}}]},"span":55},{"kind":{"Assign":[{"local":13,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]}]},"span":57}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":13,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]},"target":8,"unwind":"Continue"}},"span":57}},{"statements":[{"kind":{"Assign":[{"local":12,"projection":[]},{"Use":{"Move":{"local":13,"projection":[{"Field":[0,16]}]}}}]},"span":57},{"kind":{"Assign":[{"local":9,"projection":[]},{"BinaryOp":["Eq",{"Move":{"local":10,"projection":[]}},{"Move":{"local":12,"projection":[]}}]}]},"span":58}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":9,"projection":[]}},"targets":{"branches":[[0,10]],"otherwise":9}}},"span":58}},{"statements":[{"kind":{"Assign":[{"local":16,"projection":[]},{"CheckedBinaryOp":["Sub",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":59}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":16,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Sub",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":11,"unwind":"Continue"}},"span":59}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":60,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,2]]},"align":8,"mutability":"Mut"}},"ty":27,"id":12}}}],"destination":{"local":14,"projection":[]},"target":null,"unwind":"Continue"}},"span":60}},{"statements":[{"kind":{"Assign":[{"local":15,"projection":[]},{"Use":{"Move":{"local":16,"projection":[{"Field":[0,16]}]}}}]},"span":59}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":15,"projection":[]}},"targets":{"branches":[[32,12]],"otherwise":13}}},"span":61}},{"statements":[{"kind":{"Assign":[{"local":19,"projection":[]},{"CheckedBinaryOp":["Sub",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]}]},"span":62}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":19,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Sub",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]},"target":14,"unwind":"Continue"}},"span":62}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":63,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,3]]},"align":8,"mutability":"Mut"}},"ty":27,"id":13}}}],"destination":{"local":17,"projection":[]},"target":null,"unwind":"Continue"}},"span":63}},{"statements":[{"kind":{"Assign":[{"local":18,"projection":[]},{"Use":{"Move":{"local":19,"projection":[{"Field":[0,16]}]}}}]},"span":62}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":18,"projection":[]}},"targets":{"branches":[[4294967264,15]],"otherwise":16}}},"span":64}},{"statements":[{"kind":{"Assign":[{"local":23,"projection":[]},{"CheckedBinaryOp":["Sub",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]}]},"span":65}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":23,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Sub",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]},"target":17,"unwind":"Continue"}},"span":65}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":66,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,4]]},"align":8,"mutability":"Mut"}},"ty":27,"id":14}}}],"destination":{"local":20,"projection":[]},"target":null,"unwind":"Continue"}},"span":66}},{"statements":[{"kind":{"Assign":[{"local":22,"projection":[]},{"Use":{"Move":{"local":23,"projection":[{"Field":[0,16]}]}}}]},"span":65},{"kind":{"Assign":[{"local":25,"projection":[]},{"CheckedBinaryOp":["Sub",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":67}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":25,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Sub",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":18,"unwind":"Continue"}},"span":67}},{"statements":[{"kind":{"Assign":[{"local":24,"projection":[]},{"Use":{"Move":{"local":25,"projection":[{"Field":[0,16]}]}}}]},"span":67},{"kind":{"Assign":[{"local":21,"projection":[]},{"BinaryOp":["Ne",{"Move":{"local":22,"projection":[]}},{"Move":{"local":24,"projection":[]}}]}]},"span":68}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":21,"projection":[]}},"targets":{"branches":[[0,20]],"otherwise":19}}},"span":68}},{"statements":[{"kind":{"Assign":[{"local":28,"projection":[]},{"CheckedBinaryOp":["Mul",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":69}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":28,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Mul",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":21,"unwind":"Continue"}},"span":69}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":70,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,5]]},"align":8,"mutability":"Mut"}},"ty":27,"id":15}}}],"destination":{"local":26,"projection":[]},"target":null,"unwind":"Continue"}},"span":70}},{"statements":[{"kind":{"Assign":[{"local":27,"projection":[]},{"Use":{"Move":{"local":28,"projection":[{"Field":[0,16]}]}}}]},"span":69}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":27,"projection":[]}},"targets":{"branches":[[420,22]],"otherwise":23}}},"span":71}},{"statements":[{"kind":{"Assign":[{"local":32,"projection":[]},{"BinaryOp":["Eq",{"Copy":{"local":2,"projection":[]}},{"Constant":{"span":72,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,128],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":16}}}]}]},"span":72}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":32,"projection":[]}},"expected":false,"msg":{"OverflowNeg":{"Copy":{"local":2,"projection":[]}}},"target":24,"unwind":"Continue"}},"span":72}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":73,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,6]]},"align":8,"mutability":"Mut"}},"ty":27,"id":17}}}],"destination":{"local":29,"projection":[]},"target":null,"unwind":"Continue"}},"span":73}},{"statements":[{"kind":{"Assign":[{"local":31,"projection":[]},{"UnaryOp":["Neg",{"Copy":{"local":2,"projection":[]}}]}]},"span":72},{"kind":{"Assign":[{"local":33,"projection":[]},{"CheckedBinaryOp":["Mul",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":31,"projection":[]}}]}]},"span":74}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":33,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Mul",{"Copy":{"local":1,"projection":[]}},{"Move":{"local":31,"projection":[]}}]},"target":25,"unwind":"Continue"}},"span":74}},{"statements":[{"kind":{"Assign":[{"local":30,"projection":[]},{"Use":{"Move":{"local":33,"projection":[{"Field":[0,16]}]}}}]},"span":74}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":30,"projection":[]}},"targets":{"branches":[[4294966876,26]],"otherwise":27}}},"span":75}},{"statements":[{"kind":{"Assign":[{"local":37,"projection":[]},{"BinaryOp":["Eq",{"Copy":{"local":1,"projection":[]}},{"Constant":{"span":76,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,128],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":16}}}]}]},"span":76}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":37,"projection":[]}},"expected":false,"msg":{"OverflowNeg":{"Copy":{"local":1,"projection":[]}}},"target":28,"unwind":"Continue"}},"span":76}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":77,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,7]]},"align":8,"mutability":"Mut"}},"ty":27,"id":18}}}],"destination":{"local":34,"projection":[]},"target":null,"unwind":"Continue"}},"span":77}},{"statements":[{"kind":{"Assign":[{"local":36,"projection":[]},{"UnaryOp":["Neg",{"Copy":{"local":1,"projection":[]}}]}]},"span":76},{"kind":{"Assign":[{"local":38,"projection":[]},{"CheckedBinaryOp":["Mul",{"Copy":{"local":36,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":78}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":38,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Mul",{"Move":{"local":36,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":29,"unwind":"Continue"}},"span":78}},{"statements":[{"kind":{"Assign":[{"local":35,"projection":[]},{"Use":{"Move":{"local":38,"projection":[{"Field":[0,16]}]}}}]},"span":78}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":35,"projection":[]}},"targets":{"branches":[[4294966876,30]],"otherwise":31}}},"span":79}},{"statements":[{"kind":{"Assign":[{"local":42,"projection":[]},{"BinaryOp":["Eq",{"Copy":{"local":1,"projection":[]}},{"Constant":{"span":80,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,128],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":16}}}]}]},"span":80}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":42,"projection":[]}},"expected":false,"msg":{"OverflowNeg":{"Copy":{"local":1,"projection":[]}}},"target":32,"unwind":"Continue"}},"span":80}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":81,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,8]]},"align":8,"mutability":"Mut"}},"ty":27,"id":19}}}],"destination":{"local":39,"projection":[]},"target":null,"unwind":"Continue"}},"span":81}},{"statements":[{"kind":{"Assign":[{"local":41,"projection":[]},{"UnaryOp":["Neg",{"Copy":{"local":1,"projection":[]}}]}]},"span":80},{"kind":{"Assign":[{"local":44,"projection":[]},{"BinaryOp":["Eq",{"Copy":{"local":2,"projection":[]}},{"Constant":{"span":82,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,128],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":16}}}]}]},"span":82}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":44,"projection":[]}},"expected":false,"msg":{"OverflowNeg":{"Copy":{"local":2,"projection":[]}}},"target":33,"unwind":"Continue"}},"span":82}},{"statements":[{"kind":{"Assign":[{"local":43,"projection":[]},{"UnaryOp":["Neg",{"Copy":{"local":2,"projection":[]}}]}]},"span":82},{"kind":{"Assign":[{"local":45,"projection":[]},{"CheckedBinaryOp":["Mul",{"Copy":{"local":41,"projection":[]}},{"Copy":{"local":43,"projection":[]}}]}]},"span":83}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":45,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Mul",{"Move":{"local":41,"projection":[]}},{"Move":{"local":43,"projection":[]}}]},"target":34,"unwind":"Continue"}},"span":83}},{"statements":[{"kind":{"Assign":[{"local":40,"projection":[]},{"Use":{"Move":{"local":45,"projection":[{"Field":[0,16]}]}}}]},"span":83}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":40,"projection":[]}},"targets":{"branches":[[420,35]],"otherwise":36}}},"span":84}},{"statements":[{"kind":{"Assign":[{"local":47,"projection":[]},{"BinaryOp":["BitXor",{"Constant":{"span":86,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},{"Constant":{"span":87,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":21}}}]}]},"span":88}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":47,"projection":[]}},"targets":{"branches":[[3,37]],"otherwise":38}}},"span":85}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":89,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,9]]},"align":8,"mutability":"Mut"}},"ty":27,"id":22}}}],"destination":{"local":46,"projection":[]},"target":null,"unwind":"Continue"}},"span":89}},{"statements":[{"kind":{"Assign":[{"local":49,"projection":[]},{"BinaryOp":["BitXor",{"Constant":{"span":91,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},{"Constant":{"span":92,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[3,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":23}}}]}]},"span":93}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":49,"projection":[]}},"targets":{"branches":[[2,39]],"otherwise":40}}},"span":90}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":94,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,10]]},"align":8,"mutability":"Mut"}},"ty":27,"id":24}}}],"destination":{"local":48,"projection":[]},"target":null,"unwind":"Continue"}},"span":94}},{"statements":[{"kind":{"Assign":[{"local":51,"projection":[]},{"BinaryOp":["BitOr",{"Constant":{"span":96,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},{"Constant":{"span":97,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":21}}}]}]},"span":98}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":51,"projection":[]}},"targets":{"branches":[[3,41]],"otherwise":42}}},"span":95}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":99,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,11]]},"align":8,"mutability":"Mut"}},"ty":27,"id":25}}}],"destination":{"local":50,"projection":[]},"target":null,"unwind":"Continue"}},"span":99}},{"statements":[{"kind":{"Assign":[{"local":53,"projection":[]},{"BinaryOp":["BitOr",{"Constant":{"span":101,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},{"Constant":{"span":102,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[3,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":23}}}]}]},"span":103}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":53,"projection":[]}},"targets":{"branches":[[3,43]],"otherwise":44}}},"span":100}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":104,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,12]]},"align":8,"mutability":"Mut"}},"ty":27,"id":26}}}],"destination":{"local":52,"projection":[]},"target":null,"unwind":"Continue"}},"span":104}},{"statements":[{"kind":{"Assign":[{"local":55,"projection":[]},{"BinaryOp":["BitAnd",{"Constant":{"span":106,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},{"Constant":{"span":107,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":21}}}]}]},"span":108}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":55,"projection":[]}},"targets":{"branches":[[0,45]],"otherwise":46}}},"span":105}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":109,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,13]]},"align":8,"mutability":"Mut"}},"ty":27,"id":27}}}],"destination":{"local":54,"projection":[]},"target":null,"unwind":"Continue"}},"span":109}},{"statements":[{"kind":{"Assign":[{"local":57,"projection":[]},{"BinaryOp":["BitAnd",{"Constant":{"span":111,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},{"Constant":{"span":112,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[3,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":23}}}]}]},"span":113}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":57,"projection":[]}},"targets":{"branches":[[1,47]],"otherwise":48}}},"span":110}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":114,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,14]]},"align":8,"mutability":"Mut"}},"ty":27,"id":28}}}],"destination":{"local":56,"projection":[]},"target":null,"unwind":"Continue"}},"span":114}},{"statements":[{"kind":{"Assign":[{"local":60,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":116,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},28]}]},"span":117},{"kind":{"Assign":[{"local":61,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":60,"projection":[]}},{"Constant":{"span":117,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[32,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":28,"id":29}}}]}]},"span":117}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":61,"projection":[]}},"expected":true,"msg":{"Overflow":["Shl",{"Constant":{"span":115,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":21}}},{"Constant":{"span":116,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}}]},"target":49,"unwind":"Continue"}},"span":117}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":118,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,15]]},"align":8,"mutability":"Mut"}},"ty":27,"id":30}}}],"destination":{"local":58,"projection":[]},"target":null,"unwind":"Continue"}},"span":118}},{"statements":[{"kind":{"Assign":[{"local":59,"projection":[]},{"BinaryOp":["Shl",{"Constant":{"span":115,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":21}}},{"Constant":{"span":116,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}}]}]},"span":117}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":59,"projection":[]}},"targets":{"branches":[[4,50]],"otherwise":51}}},"span":119}},{"statements":[{"kind":{"Assign":[{"local":64,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":121,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},28]}]},"span":122},{"kind":{"Assign":[{"local":65,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":64,"projection":[]}},{"Constant":{"span":122,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[32,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":28,"id":29}}}]}]},"span":122}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":65,"projection":[]}},"expected":true,"msg":{"Overflow":["Shr",{"Constant":{"span":120,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":21}}},{"Constant":{"span":121,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}}]},"target":52,"unwind":"Continue"}},"span":122}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":123,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,16]]},"align":8,"mutability":"Mut"}},"ty":27,"id":31}}}],"destination":{"local":62,"projection":[]},"target":null,"unwind":"Continue"}},"span":123}},{"statements":[{"kind":{"Assign":[{"local":63,"projection":[]},{"BinaryOp":["Shr",{"Constant":{"span":120,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":21}}},{"Constant":{"span":121,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}}]}]},"span":122}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":63,"projection":[]}},"targets":{"branches":[[1,53]],"otherwise":54}}},"span":124}},{"statements":[{"kind":{"Assign":[{"local":68,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":126,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},28]}]},"span":127},{"kind":{"Assign":[{"local":69,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":68,"projection":[]}},{"Constant":{"span":127,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[32,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":28,"id":29}}}]}]},"span":127}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":69,"projection":[]}},"expected":true,"msg":{"Overflow":["Shr",{"Constant":{"span":125,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[3,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":23}}},{"Constant":{"span":126,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}}]},"target":55,"unwind":"Continue"}},"span":127}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":128,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,17]]},"align":8,"mutability":"Mut"}},"ty":27,"id":32}}}],"destination":{"local":66,"projection":[]},"target":null,"unwind":"Continue"}},"span":128}},{"statements":[{"kind":{"Assign":[{"local":67,"projection":[]},{"BinaryOp":["Shr",{"Constant":{"span":125,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[3,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":23}}},{"Constant":{"span":126,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}}]}]},"span":127}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":67,"projection":[]}},"targets":{"branches":[[1,56]],"otherwise":57}}},"span":129}},{"statements":[{"kind":{"Assign":[{"local":72,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":131,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},28]}]},"span":132},{"kind":{"Assign":[{"local":73,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":72,"projection":[]}},{"Constant":{"span":132,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[32,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":28,"id":29}}}]}]},"span":132}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":73,"projection":[]}},"expected":true,"msg":{"Overflow":["Shr",{"Constant":{"span":130,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},{"Constant":{"span":131,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}}]},"target":58,"unwind":"Continue"}},"span":132}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":133,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,18]]},"align":8,"mutability":"Mut"}},"ty":27,"id":33}}}],"destination":{"local":70,"projection":[]},"target":null,"unwind":"Continue"}},"span":133}},{"statements":[{"kind":{"Assign":[{"local":71,"projection":[]},{"BinaryOp":["Shr",{"Constant":{"span":130,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}},{"Constant":{"span":131,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":20}}}]}]},"span":132}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":71,"projection":[]}},"targets":{"branches":[[0,59]],"otherwise":60}}},"span":134}},{"statements":[{"kind":{"Assign":[{"local":77,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":135}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":77,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":61,"unwind":"Continue"}},"span":135}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":136,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,19]]},"align":8,"mutability":"Mut"}},"ty":27,"id":34}}}],"destination":{"local":74,"projection":[]},"target":null,"unwind":"Continue"}},"span":136}},{"statements":[{"kind":{"Assign":[{"local":76,"projection":[]},{"Use":{"Move":{"local":77,"projection":[{"Field":[0,16]}]}}}]},"span":135},{"kind":{"Assign":[{"local":75,"projection":[]},{"BinaryOp":["Lt",{"Copy":{"local":1,"projection":[]}},{"Move":{"local":76,"projection":[]}}]}]},"span":137}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":75,"projection":[]}},"targets":{"branches":[[0,63]],"otherwise":62}}},"span":137}},{"statements":[{"kind":{"Assign":[{"local":81,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":138}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":81,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":64,"unwind":"Continue"}},"span":138}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":139,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,20]]},"align":8,"mutability":"Mut"}},"ty":27,"id":35}}}],"destination":{"local":78,"projection":[]},"target":null,"unwind":"Continue"}},"span":139}},{"statements":[{"kind":{"Assign":[{"local":80,"projection":[]},{"Use":{"Move":{"local":81,"projection":[{"Field":[0,16]}]}}}]},"span":138},{"kind":{"Assign":[{"local":79,"projection":[]},{"BinaryOp":["Le",{"Copy":{"local":1,"projection":[]}},{"Move":{"local":80,"projection":[]}}]}]},"span":140}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":79,"projection":[]}},"targets":{"branches":[[0,66]],"otherwise":65}}},"span":140}},{"statements":[{"kind":{"Assign":[{"local":86,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":141}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":86,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":67,"unwind":"Continue"}},"span":141}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":142,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,21]]},"align":8,"mutability":"Mut"}},"ty":27,"id":36}}}],"destination":{"local":82,"projection":[]},"target":null,"unwind":"Continue"}},"span":142}},{"statements":[{"kind":{"Assign":[{"local":85,"projection":[]},{"Use":{"Move":{"local":86,"projection":[{"Field":[0,16]}]}}}]},"span":141},{"kind":{"Assign":[{"local":87,"projection":[]},{"CheckedBinaryOp":["Sub",{"Copy":{"local":85,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":143}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":87,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Sub",{"Move":{"local":85,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":68,"unwind":"Continue"}},"span":143}},{"statements":[{"kind":{"Assign":[{"local":84,"projection":[]},{"Use":{"Move":{"local":87,"projection":[{"Field":[0,16]}]}}}]},"span":143},{"kind":{"Assign":[{"local":83,"projection":[]},{"BinaryOp":["Le",{"Copy":{"local":1,"projection":[]}},{"Move":{"local":84,"projection":[]}}]}]},"span":144}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":83,"projection":[]}},"targets":{"branches":[[0,70]],"otherwise":69}}},"span":144}},{"statements":[{"kind":{"Assign":[{"local":91,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":145}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":91,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":71,"unwind":"Continue"}},"span":145}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":146,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,22]]},"align":8,"mutability":"Mut"}},"ty":27,"id":37}}}],"destination":{"local":88,"projection":[]},"target":null,"unwind":"Continue"}},"span":146}},{"statements":[{"kind":{"Assign":[{"local":90,"projection":[]},{"Use":{"Move":{"local":91,"projection":[{"Field":[0,16]}]}}}]},"span":145},{"kind":{"Assign":[{"local":89,"projection":[]},{"BinaryOp":["Gt",{"Move":{"local":90,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]}]},"span":147}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":89,"projection":[]}},"targets":{"branches":[[0,73]],"otherwise":72}}},"span":147}},{"statements":[{"kind":{"Assign":[{"local":95,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":148}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":95,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":74,"unwind":"Continue"}},"span":148}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":149,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,23]]},"align":8,"mutability":"Mut"}},"ty":27,"id":38}}}],"destination":{"local":92,"projection":[]},"target":null,"unwind":"Continue"}},"span":149}},{"statements":[{"kind":{"Assign":[{"local":94,"projection":[]},{"Use":{"Move":{"local":95,"projection":[{"Field":[0,16]}]}}}]},"span":148},{"kind":{"Assign":[{"local":93,"projection":[]},{"BinaryOp":["Ge",{"Move":{"local":94,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]}]},"span":150}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":93,"projection":[]}},"targets":{"branches":[[0,76]],"otherwise":75}}},"span":150}},{"statements":[{"kind":{"Assign":[{"local":100,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":151}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":100,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":77,"unwind":"Continue"}},"span":151}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":152,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,24]]},"align":8,"mutability":"Mut"}},"ty":27,"id":39}}}],"destination":{"local":96,"projection":[]},"target":null,"unwind":"Continue"}},"span":152}},{"statements":[{"kind":{"Assign":[{"local":99,"projection":[]},{"Use":{"Move":{"local":100,"projection":[{"Field":[0,16]}]}}}]},"span":151},{"kind":{"Assign":[{"local":101,"projection":[]},{"CheckedBinaryOp":["Sub",{"Copy":{"local":99,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":153}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":101,"projection":[{"Field":[1,25]}]}},"expected":false,"msg":{"Overflow":["Sub",{"Move":{"local":99,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]},"target":78,"unwind":"Continue"}},"span":153}},{"statements":[{"kind":{"Assign":[{"local":98,"projection":[]},{"Use":{"Move":{"local":101,"projection":[{"Field":[0,16]}]}}}]},"span":153},{"kind":{"Assign":[{"local":97,"projection":[]},{"BinaryOp":["Ge",{"Move":{"local":98,"projection":[]}},{"Copy":{"local":1,"projection":[]}}]}]},"span":154}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":97,"projection":[]}},"targets":{"branches":[[0,80]],"otherwise":79}}},"span":154}},{"statements":[],"terminator":{"kind":"Return","span":155}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":156,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":9}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,25]]},"align":8,"mutability":"Mut"}},"ty":27,"id":40}}}],"destination":{"local":102,"projection":[]},"target":null,"unwind":"Continue"}},"span":156}}],"locals":[{"ty":1,"span":157,"mutability":"Mut"},{"ty":16,"span":158,"mutability":"Not"},{"ty":16,"span":159,"mutability":"Not"},{"ty":16,"span":50,"mutability":"Mut"},{"ty":29,"span":50,"mutability":"Mut"},{"ty":30,"span":53,"mutability":"Mut"},{"ty":16,"span":52,"mutability":"Mut"},{"ty":29,"span":52,"mutability":"Mut"},{"ty":30,"span":56,"mutability":"Mut"},{"ty":25,"span":58,"mutability":"Mut"},{"ty":16,"span":55,"mutability":"Mut"},{"ty":29,"span":55,"mutability":"Mut"},{"ty":16,"span":57,"mutability":"Mut"},{"ty":29,"span":57,"mutability":"Mut"},{"ty":30,"span":60,"mutability":"Mut"},{"ty":16,"span":59,"mutability":"Mut"},{"ty":29,"span":59,"mutability":"Mut"},{"ty":30,"span":63,"mutability":"Mut"},{"ty":16,"span":62,"mutability":"Mut"},{"ty":29,"span":62,"mutability":"Mut"},{"ty":30,"span":66,"mutability":"Mut"},{"ty":25,"span":68,"mutability":"Mut"},{"ty":16,"span":65,"mutability":"Mut"},{"ty":29,"span":65,"mutability":"Mut"},{"ty":16,"span":67,"mutability":"Mut"},{"ty":29,"span":67,"mutability":"Mut"},{"ty":30,"span":70,"mutability":"Mut"},{"ty":16,"span":69,"mutability":"Mut"},{"ty":29,"span":69,"mutability":"Mut"},{"ty":30,"span":73,"mutability":"Mut"},{"ty":16,"span":74,"mutability":"Mut"},{"ty":16,"span":72,"mutability":"Mut"},{"ty":25,"span":72,"mutability":"Mut"},{"ty":29,"span":74,"mutability":"Mut"},{"ty":30,"span":77,"mutability":"Mut"},{"ty":16,"span":78,"mutability":"Mut"},{"ty":16,"span":76,"mutability":"Mut"},{"ty":25,"span":76,"mutability":"Mut"},{"ty":29,"span":78,"mutability":"Mut"},{"ty":30,"span":81,"mutability":"Mut"},{"ty":16,"span":83,"mutability":"Mut"},{"ty":16,"span":80,"mutability":"Mut"},{"ty":25,"span":80,"mutability":"Mut"},{"ty":16,"span":82,"mutability":"Mut"},{"ty":25,"span":82,"mutability":"Mut"},{"ty":29,"span":83,"mutability":"Mut"},{"ty":30,"span":89,"mutability":"Mut"},{"ty":16,"span":88,"mutability":"Mut"},{"ty":30,"span":94,"mutability":"Mut"},{"ty":16,"span":93,"mutability":"Mut"},{"ty":30,"span":99,"mutability":"Mut"},{"ty":16,"span":98,"mutability":"Mut"},{"ty":30,"span":104,"mutability":"Mut"},{"ty":16,"span":103,"mutability":"Mut"},{"ty":30,"span":109,"mutability":"Mut"},{"ty":16,"span":108,"mutability":"Mut"},{"ty":30,"span":114,"mutability":"Mut"},{"ty":16,"span":113,"mutability":"Mut"},{"ty":30,"span":118,"mutability":"Mut"},{"ty":16,"span":117,"mutability":"Mut"},{"ty":28,"span":117,"mutability":"Mut"},{"ty":25,"span":117,"mutability":"Mut"},{"ty":30,"span":123,"mutability":"Mut"},{"ty":16,"span":122,"mutability":"Mut"},{"ty":28,"span":122,"mutability":"Mut"},{"ty":25,"span":122,"mutability":"Mut"},{"ty":30,"span":128,"mutability":"Mut"},{"ty":16,"span":127,"mutability":"Mut"},{"ty":28,"span":127,"mutability":"Mut"},{"ty":25,"span":127,"mutability":"Mut"},{"ty":30,"span":133,"mutability":"Mut"},{"ty":16,"span":132,"mutability":"Mut"},{"ty":28,"span":132,"mutability":"Mut"},{"ty":25,"span":132,"mutability":"Mut"},{"ty":30,"span":136,"mutability":"Mut"},{"ty":25,"span":137,"mutability":"Mut"},{"ty":16,"span":135,"mutability":"Mut"},{"ty":29,"span":135,"mutability":"Mut"},{"ty":30,"span":139,"mutability":"Mut"},{"ty":25,"span":140,"mutability":"Mut"},{"ty":16,"span":138,"mutability":"Mut"},{"ty":29,"span":138,"mutability":"Mut"},{"ty":30,"span":142,"mutability":"Mut"},{"ty":25,"span":144,"mutability":"Mut"},{"ty":16,"span":143,"mutability":"Mut"},{"ty":16,"span":141,"mutability":"Mut"},{"ty":29,"span":141,"mutability":"Mut"},{"ty":29,"span":143,"mutability":"Mut"},{"ty":30,"span":146,"mutability":"Mut"},{"ty":25,"span":147,"mutability":"Mut"},{"ty":16,"span":145,"mutability":"Mut"},{"ty":29,"span":145,"mutability":"Mut"},{"ty":30,"span":149,"mutability":"Mut"},{"ty":25,"span":150,"mutability":"Mut"},{"ty":16,"span":148,"mutability":"Mut"},{"ty":29,"span":148,"mutability":"Mut"},{"ty":30,"span":152,"mutability":"Mut"},{"ty":25,"span":154,"mutability":"Mut"},{"ty":16,"span":153,"mutability":"Mut"},{"ty":16,"span":151,"mutability":"Mut"},{"ty":29,"span":151,"mutability":"Mut"},{"ty":29,"span":153,"mutability":"Mut"},{"ty":30,"span":156,"mutability":"Mut"}],"arg_count":2,"var_debug_info":[{"name":"x","source_info":{"span":158,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"y","source_info":{"span":159,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2}],"spread_arg":null,"span":160}}},"details":null},{"symbol_name":"_ZN5binop4main17h7dc164dcac1665b8E","mono_item_kind":{"MonoItemFn":{"name":"main","id":7,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":2,"projection":[]},{"Use":{"Constant":{"span":163,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":42}}}}]},"span":164},{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Constant":{"span":165,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[10,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":43}}}}]},"span":166}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":161,"user_ty":null,"const_":{"kind":"ZeroSized","ty":31,"id":41}}},"args":[{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}}],"destination":{"local":1,"projection":[]},"target":1,"unwind":"Continue"}},"span":162}},{"statements":[],"terminator":{"kind":"Return","span":167}}],"locals":[{"ty":1,"span":168,"mutability":"Mut"},{"ty":1,"span":162,"mutability":"Not"},{"ty":16,"span":164,"mutability":"Mut"},{"ty":16,"span":166,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"x","source_info":{"span":169,"scope":1},"composite":null,"value":{"Const":{"span":163,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":42}}},"argument_index":null},{"name":"y","source_info":{"span":170,"scope":2},"composite":null,"value":{"Const":{"span":165,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[10,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":43}}},"argument_index":null}],"spread_arg":null,"span":171}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":36,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":37,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":25,"discriminants":[0,1],"fields":[[6],[30]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":18,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":16,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[25,{"PrimitiveType":"Bool"}],[27,{"RefType":{"pointee_type":34,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[28,{"PrimitiveType":{"Uint":"U32"}}],[29,{"TupleType":{"types":[16,25],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":32}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I32","signed":true}},"valid_range":{"start":0,"end":4294967295}}},{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}}]},"abi_align":4,"size":{"num_bits":64}}}}],[30,"VoidType"],[33,{"RefType":{"pointee_type":35,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[34,{"PrimitiveType":"Str"}],[35,{"StructType":{"name":"std::panic::Location<'_>","adt_def":10,"fields":[27,28,28],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[37,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",4,13,4,18]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",4,13,4,24]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",5,19,5,24]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",4,5,4,25]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",5,13,5,24]],[55,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",6,13,6,18]],[56,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",5,5,5,25]],[57,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",6,22,6,27]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",6,13,6,27]],[59,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",9,13,9,18]],[60,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",6,5,6,28]],[61,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",9,13,9,24]],[62,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",10,13,10,18]],[63,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",9,5,9,25]],[64,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",10,13,10,25]],[65,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",11,13,11,18]],[66,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",10,5,10,26]],[67,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",11,22,11,27]],[68,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",11,13,11,27]],[69,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",14,13,14,18]],[70,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",11,5,11,28]],[71,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",14,13,14,25]],[72,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",15,17,15,19]],[73,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",14,5,14,26]],[74,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",15,13,15,19]],[75,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",15,13,15,27]],[76,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",16,13,16,15]],[77,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",15,5,15,28]],[78,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",16,13,16,19]],[79,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",16,13,16,27]],[80,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",17,13,17,15]],[81,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",16,5,16,28]],[82,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",17,18,17,20]],[83,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",17,13,17,20]],[84,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",17,13,17,27]],[85,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",27,13,27,23]],[86,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",27,13,27,14]],[87,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",27,17,27,18]],[88,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",27,13,27,18]],[89,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",17,5,17,28]],[90,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",28,13,28,23]],[91,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",28,13,28,14]],[92,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",28,17,28,18]],[93,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",28,13,28,18]],[94,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",27,5,27,24]],[95,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",31,13,31,23]],[96,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",31,13,31,14]],[97,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",31,17,31,18]],[98,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",31,13,31,18]],[99,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",28,5,28,24]],[100,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",32,13,32,23]],[101,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",32,13,32,14]],[102,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",32,17,32,18]],[103,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",32,13,32,18]],[104,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",31,5,31,24]],[105,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",35,13,35,23]],[106,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",35,13,35,14]],[107,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",35,17,35,18]],[108,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",35,13,35,18]],[109,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",32,5,32,24]],[110,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",36,13,36,23]],[111,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",36,13,36,14]],[112,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",36,17,36,18]],[113,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",36,13,36,18]],[114,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",35,5,35,24]],[115,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",39,13,39,14]],[116,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",39,18,39,19]],[117,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",39,13,39,19]],[118,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",36,5,36,24]],[119,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",39,13,39,24]],[120,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",48,13,48,14]],[121,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",48,18,48,19]],[122,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",48,13,48,19]],[123,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",39,5,39,25]],[124,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",48,13,48,24]],[125,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",49,13,49,14]],[126,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",49,18,49,19]],[127,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",49,13,49,19]],[128,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",48,5,48,25]],[129,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",49,13,49,24]],[130,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",50,13,50,14]],[131,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",50,18,50,19]],[132,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",50,13,50,19]],[133,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",49,5,49,25]],[134,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",50,13,50,24]],[135,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",54,17,54,22]],[136,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",50,5,50,25]],[137,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",54,13,54,22]],[138,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",57,18,57,23]],[139,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",54,5,54,23]],[140,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",57,13,57,23]],[141,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",58,18,58,23]],[142,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",57,5,57,24]],[143,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",58,18,58,27]],[144,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",58,13,58,27]],[145,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",61,13,61,18]],[146,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",58,5,58,28]],[147,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",61,13,61,22]],[148,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",64,13,64,18]],[149,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",61,5,61,23]],[150,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",64,13,64,23]],[151,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",65,13,65,18]],[152,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",64,5,64,24]],[153,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",65,13,65,22]],[154,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",65,13,65,27]],[155,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",66,2,66,2]],[156,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",65,5,65,28]],[158,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",1,15,1,16]],[159,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",1,22,1,23]],[160,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",1,1,66,2]],[161,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",72,3,72,13]],[162,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",72,3,72,19]],[163,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",70,11,70,13]],[164,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",72,14,72,15]],[165,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",71,11,71,13]],[166,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",72,17,72,18]],[167,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",74,2,74,2]],[169,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",70,7,70,8]],[170,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",71,7,71,8]],[171,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/binop.rs",69,1,74,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/closure-args.smir.json b/tests/integration/programs/closure-args.smir.json new file mode 100644 index 0000000..7c78e07 --- /dev/null +++ b/tests/integration/programs/closure-args.smir.json @@ -0,0 +1 @@ +{"name":"closure_args","crate_id":14225644451696982493,"allocs":[[1,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h50529caa9b5e9eb2E"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h58979d2384c0c172E"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h172b092ca7b75299E"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hfc43cbb07b2f0341E"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h6baad31382a051b9E"}],[25,{"NormalSym":"_ZN12closure_args4main28_$u7b$$u7b$closure$u7d$$u7d$17h1c6a9b8f477b14a8E"}],[26,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[35,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN12closure_args4main17h1fc4146de98d22f6E","mono_item_kind":{"MonoItemFn":{"name":"main","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":1,"projection":[]}]}]},"span":50},{"kind":{"Assign":[{"local":4,"projection":[]},{"Aggregate":["Tuple",[{"Constant":{"span":52,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[20,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}},{"Constant":{"span":53,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[22,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":11}}}]]}]},"span":51}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":50,"user_ty":null,"const_":{"kind":"ZeroSized","ty":25,"id":9}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":1,"unwind":"Continue"}},"span":51}},{"statements":[],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":2,"projection":[]}},"targets":{"branches":[[42,2]],"otherwise":3}}},"span":54}},{"statements":[],"terminator":{"kind":"Return","span":55}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":56,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":12}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,35,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":27,"id":13}}}],"destination":{"local":5,"projection":[]},"target":null,"unwind":"Continue"}},"span":56}}],"locals":[{"ty":1,"span":57,"mutability":"Mut"},{"ty":28,"span":58,"mutability":"Not"},{"ty":16,"span":51,"mutability":"Mut"},{"ty":29,"span":50,"mutability":"Mut"},{"ty":30,"span":51,"mutability":"Mut"},{"ty":31,"span":56,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"sum","source_info":{"span":58,"scope":1},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":28,"id":14}}},"argument_index":null}],"spread_arg":null,"span":59}}},"details":null},{"symbol_name":"_ZN12closure_args4main28_$u7b$$u7b$closure$u7d$$u7d$17h1c6a9b8f477b14a8E","mono_item_kind":{"MonoItemFn":{"name":"main::{closure#0}","id":7,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":4,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":3,"projection":[]}}]}]},"span":60}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":4,"projection":[{"Field":[1,32]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":3,"projection":[]}}]},"target":1,"unwind":"Continue"}},"span":60}},{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Move":{"local":4,"projection":[{"Field":[0,16]}]}}}]},"span":60}],"terminator":{"kind":"Return","span":61}}],"locals":[{"ty":16,"span":62,"mutability":"Mut"},{"ty":29,"span":63,"mutability":"Mut"},{"ty":16,"span":64,"mutability":"Not"},{"ty":16,"span":65,"mutability":"Not"},{"ty":33,"span":60,"mutability":"Mut"}],"arg_count":3,"var_debug_info":[{"name":"x","source_info":{"span":64,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"y","source_info":{"span":65,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3}],"spread_arg":null,"span":63}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start17hd68aac3e07ab8f88E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h6baad31382a051b9E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h50529caa9b5e9eb2E","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h1b1ea3b06c8173f7E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h172b092ca7b75299E","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hfc43cbb07b2f0341E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h7267ebe6bb828af0E","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h58979d2384c0c172E","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":36,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":37,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":20,"discriminants":[0,1],"fields":[[6],[31]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":10,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":8,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[27,{"RefType":{"pointee_type":39,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[29,{"RefType":{"pointee_type":28,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[30,{"TupleType":{"types":[16,16],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":32}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I32","signed":true}},"valid_range":{"start":0,"end":4294967295}}},{"Initialized":{"value":{"Int":{"length":"I32","signed":true}},"valid_range":{"start":0,"end":4294967295}}}]},"abi_align":4,"size":{"num_bits":64}}}}],[31,"VoidType"],[32,{"PrimitiveType":"Bool"}],[33,{"TupleType":{"types":[16,32],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":32}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I32","signed":true}},"valid_range":{"start":0,"end":4294967295}}},{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}}]},"abi_align":4,"size":{"num_bits":64}}}}],[37,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[38,{"RefType":{"pointee_type":40,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[39,{"PrimitiveType":"Str"}],[40,{"StructType":{"name":"std::panic::Location<'_>","adt_def":25,"fields":[27,41,41],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[41,{"PrimitiveType":{"Uint":"U32"}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",4,13,4,16]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",4,13,4,24]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",4,17,4,19]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",4,21,4,23]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",4,13,4,30]],[55,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",5,2,5,2]],[56,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",4,5,4,31]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",2,9,2,12]],[59,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",1,1,5,2]],[60,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",2,31,2,36]],[61,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",2,38,2,38]],[63,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",2,15,2,38]],[64,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",2,16,2,17]],[65,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-args.rs",2,19,2,20]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/closure-no-args.smir.json b/tests/integration/programs/closure-no-args.smir.json new file mode 100644 index 0000000..c6a47d7 --- /dev/null +++ b/tests/integration/programs/closure-no-args.smir.json @@ -0,0 +1 @@ +{"name":"closure_no_args","crate_id":4994472006817158134,"allocs":[[1,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h571d9e6e9a88e0b3E"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17he5d70c2eedd6acf0E"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hadab0dcbef7e436eE"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hf6c6e2f008145ba6E"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h4017d2814d47971fE"}],[25,{"NormalSym":"_ZN15closure_no_args4main28_$u7b$$u7b$closure$u7d$$u7d$17h639e282b1db87e78E"}],[26,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[36,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN15closure_no_args4main17h40a3d87758fcab99E","mono_item_kind":{"MonoItemFn":{"name":"main","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":1,"projection":[]}]}]},"span":50}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":50,"user_ty":null,"const_":{"kind":"ZeroSized","ty":25,"id":9}}},"args":[{"Move":{"local":3,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":1,"unwind":"Continue"}},"span":51}},{"statements":[],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":2,"projection":[]}},"targets":{"branches":[[42,2]],"otherwise":3}}},"span":52}},{"statements":[],"terminator":{"kind":"Return","span":53}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":54,"user_ty":null,"const_":{"kind":"ZeroSized","ty":26,"id":10}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":27,"id":11}}}],"destination":{"local":4,"projection":[]},"target":null,"unwind":"Continue"}},"span":54}}],"locals":[{"ty":1,"span":55,"mutability":"Mut"},{"ty":28,"span":56,"mutability":"Not"},{"ty":29,"span":51,"mutability":"Mut"},{"ty":30,"span":50,"mutability":"Mut"},{"ty":31,"span":54,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"sum","source_info":{"span":56,"scope":1},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":28,"id":12}}},"argument_index":null}],"spread_arg":null,"span":57}}},"details":null},{"symbol_name":"_ZN15closure_no_args4main28_$u7b$$u7b$closure$u7d$$u7d$17h639e282b1db87e78E","mono_item_kind":{"MonoItemFn":{"name":"main::{closure#0}","id":7,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":59,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":29,"id":13}}}}]},"span":59}],"terminator":{"kind":"Return","span":58}}],"locals":[{"ty":29,"span":60,"mutability":"Mut"},{"ty":30,"span":61,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":61}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start17hf9f9d8b86623274dE","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h4017d2814d47971fE","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h571d9e6e9a88e0b3E","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h064d4bc33f838ef6E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hadab0dcbef7e436eE","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hf6c6e2f008145ba6E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h80f2dcfb7da678b3E","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17he5d70c2eedd6acf0E","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":37,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":38,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":26,"discriminants":[0,1],"fields":[[6],[31]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":18,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":16,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[27,{"RefType":{"pointee_type":34,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[29,{"PrimitiveType":{"Uint":"U32"}}],[30,{"RefType":{"pointee_type":28,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[31,"VoidType"],[33,{"RefType":{"pointee_type":35,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[34,{"PrimitiveType":"Str"}],[35,{"StructType":{"name":"std::panic::Location<'_>","adt_def":10,"fields":[27,29,29],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[38,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",4,13,4,16]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",4,13,4,18]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",4,13,4,24]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",5,2,5,2]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",4,5,4,25]],[56,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",2,9,2,12]],[57,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",1,1,5,2]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",2,31,2,31]],[59,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",2,27,2,29]],[61,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/closure-no-args.rs",2,15,2,31]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/double-ref-deref.smir.json b/tests/integration/programs/double-ref-deref.smir.json new file mode 100644 index 0000000..86629fd --- /dev/null +++ b/tests/integration/programs/double-ref-deref.smir.json @@ -0,0 +1 @@ +{"name":"double_ref_deref","crate_id":6536400141841126848,"allocs":[[1,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h62c7b6068167e75cE"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hea15abf9dfd29f83E"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hc193d758752fe0feE"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h38eadb6fda428deeE"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hea1ed76cc02d0cc6E"}],[25,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[34,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN16double_ref_deref4main17hea5f0cb84b044abcE","mono_item_kind":{"MonoItemFn":{"name":"main","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":1,"projection":[]},{"Use":{"Constant":{"span":51,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":9}}}}]},"span":51},{"kind":{"Assign":[{"local":2,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":1,"projection":[]}]}]},"span":52},{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[]}]}]},"span":53},{"kind":{"Assign":[{"local":6,"projection":[]},{"CopyForDeref":{"local":3,"projection":["Deref"]}}]},"span":54},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":6,"projection":["Deref"]}}}]},"span":54}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":4,"projection":[]}},"targets":{"branches":[[42,1]],"otherwise":2}}},"span":50}},{"statements":[],"terminator":{"kind":"Return","span":55}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":56,"user_ty":null,"const_":{"kind":"ZeroSized","ty":25,"id":10}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":26,"id":11}}}],"destination":{"local":5,"projection":[]},"target":null,"unwind":"Continue"}},"span":56}}],"locals":[{"ty":1,"span":57,"mutability":"Mut"},{"ty":16,"span":58,"mutability":"Not"},{"ty":27,"span":59,"mutability":"Not"},{"ty":28,"span":60,"mutability":"Not"},{"ty":16,"span":54,"mutability":"Mut"},{"ty":29,"span":56,"mutability":"Mut"},{"ty":27,"span":60,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"a","source_info":{"span":58,"scope":1},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":null},{"name":"b","source_info":{"span":59,"scope":2},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":null},{"name":"c","source_info":{"span":60,"scope":3},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":61}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start17hcac56aa740c7e67cE","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hea1ed76cc02d0cc6E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h62c7b6068167e75cE","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h3be9cf2410fb1d27E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h38eadb6fda428deeE","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hc193d758752fe0feE","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h05d423a6bce7d1abE","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hea15abf9dfd29f83E","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":35,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":36,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":23,"discriminants":[0,1],"fields":[[6],[29]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":16,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":14,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[26,{"RefType":{"pointee_type":31,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[27,{"RefType":{"pointee_type":16,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[28,{"RefType":{"pointee_type":27,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[29,"VoidType"],[30,{"RefType":{"pointee_type":32,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[31,{"PrimitiveType":"Str"}],[32,{"StructType":{"name":"std::panic::Location<'_>","adt_def":8,"fields":[26,33,33],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[33,{"PrimitiveType":{"Uint":"U32"}}],[36,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",6,13,6,22]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",2,13,2,15]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",3,13,3,15]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",4,13,4,15]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",6,13,6,16]],[55,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",7,2,7,2]],[56,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",6,5,6,23]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",2,9,2,10]],[59,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",3,9,3,10]],[60,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",4,9,4,10]],[61,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/double-ref-deref.rs",1,1,7,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/float.smir.json b/tests/integration/programs/float.smir.json new file mode 100644 index 0000000..b843233 --- /dev/null +++ b/tests/integration/programs/float.smir.json @@ -0,0 +1 @@ +{"name":"float","crate_id":8092759617651712073,"allocs":[[2,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[3,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4bd6a5f30658e88fE"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hc0c357b4a4d0011bE"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h1629ff85ab8bdec1E"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hdfdd3c08d0353a55E"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf97f8a54a5cb0658E"}],[27,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[31,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN3std2rt10lang_start17ha0f73ca83c13fa75E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hf97f8a54a5cb0658E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4bd6a5f30658e88fE","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hb4fcddae24d4ce62E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h1629ff85ab8bdec1E","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hdfdd3c08d0353a55E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17hff6f7a7a35c19854E","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hc0c357b4a4d0011bE","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null},{"symbol_name":"_ZN5float4main17hfcafba4483851527E","mono_item_kind":{"MonoItemFn":{"name":"main","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Constant":{"span":51,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,96,64],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":9}}}}]},"span":52},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Constant":{"span":53,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[154,153,153,63],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":10}}}}]},"span":54},{"kind":{"Assign":[{"local":2,"projection":[]},{"BinaryOp":["Add",{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}]}]},"span":55},{"kind":{"Assign":[{"local":1,"projection":[]},{"BinaryOp":["Eq",{"Move":{"local":2,"projection":[]}},{"Constant":{"span":56,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[102,102,150,64],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":11}}}]}]},"span":50}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":1,"projection":[]}},"targets":{"branches":[[0,2]],"otherwise":1}}},"span":50}},{"statements":[{"kind":{"Assign":[{"local":8,"projection":[]},{"Use":{"Constant":{"span":58,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,12,64],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":26,"id":12}}}}]},"span":59},{"kind":{"Assign":[{"local":9,"projection":[]},{"Use":{"Constant":{"span":60,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[51,51,51,51,51,51,243,63],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":26,"id":13}}}}]},"span":61},{"kind":{"Assign":[{"local":7,"projection":[]},{"BinaryOp":["Add",{"Move":{"local":8,"projection":[]}},{"Move":{"local":9,"projection":[]}}]}]},"span":62},{"kind":{"Assign":[{"local":6,"projection":[]},{"BinaryOp":["Eq",{"Move":{"local":7,"projection":[]}},{"Constant":{"span":63,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[205,204,204,204,204,204,18,64],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":26,"id":14}}}]}]},"span":57}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":6,"projection":[]}},"targets":{"branches":[[0,4]],"otherwise":3}}},"span":57}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":64,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":15}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":28,"id":16}}}],"destination":{"local":5,"projection":[]},"target":null,"unwind":"Continue"}},"span":64}},{"statements":[],"terminator":{"kind":"Return","span":65}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":66,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":15}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,1]]},"align":8,"mutability":"Mut"}},"ty":28,"id":17}}}],"destination":{"local":10,"projection":[]},"target":null,"unwind":"Continue"}},"span":66}}],"locals":[{"ty":1,"span":67,"mutability":"Mut"},{"ty":29,"span":50,"mutability":"Mut"},{"ty":25,"span":55,"mutability":"Mut"},{"ty":25,"span":52,"mutability":"Mut"},{"ty":25,"span":54,"mutability":"Mut"},{"ty":30,"span":64,"mutability":"Mut"},{"ty":29,"span":57,"mutability":"Mut"},{"ty":26,"span":62,"mutability":"Mut"},{"ty":26,"span":59,"mutability":"Mut"},{"ty":26,"span":61,"mutability":"Mut"},{"ty":30,"span":66,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"a","source_info":{"span":68,"scope":1},"composite":null,"value":{"Const":{"span":51,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,96,64],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":9}}},"argument_index":null},{"name":"b","source_info":{"span":69,"scope":2},"composite":null,"value":{"Const":{"span":53,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[154,153,153,63],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":10}}},"argument_index":null},{"name":"c","source_info":{"span":70,"scope":3},"composite":null,"value":{"Const":{"span":58,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,12,64],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":26,"id":12}}},"argument_index":null},{"name":"d","source_info":{"span":71,"scope":4},"composite":null,"value":{"Const":{"span":60,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[51,51,51,51,51,51,243,63],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":26,"id":13}}},"argument_index":null}],"spread_arg":null,"span":72}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":36,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":37,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":24,"discriminants":[0,1],"fields":[[6],[30]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":10,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":8,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[25,{"PrimitiveType":{"Float":"F32"}}],[26,{"PrimitiveType":{"Float":"F64"}}],[28,{"RefType":{"pointee_type":33,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[29,{"PrimitiveType":"Bool"}],[30,"VoidType"],[32,{"RefType":{"pointee_type":34,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[33,{"PrimitiveType":"Str"}],[34,{"StructType":{"name":"std::panic::Location<'_>","adt_def":15,"fields":[28,35,35],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[35,{"PrimitiveType":{"Uint":"U32"}}],[37,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",5,13,5,25]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",2,17,2,20]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",5,13,5,14]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",3,17,3,20]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",5,17,5,18]],[55,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",5,13,5,18]],[56,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",5,22,5,25]],[57,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",10,13,10,25]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",7,17,7,20]],[59,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",10,13,10,14]],[60,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",8,17,8,20]],[61,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",10,17,10,18]],[62,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",10,13,10,18]],[63,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",10,22,10,25]],[64,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",5,5,5,26]],[65,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",11,2,11,2]],[66,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",10,5,10,26]],[68,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",2,9,2,10]],[69,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",3,9,3,10]],[70,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",7,9,7,10]],[71,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",8,9,8,10]],[72,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/float.rs",1,1,11,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/param_types.smir.json b/tests/integration/programs/param_types.smir.json new file mode 100644 index 0000000..6ca6820 --- /dev/null +++ b/tests/integration/programs/param_types.smir.json @@ -0,0 +1 @@ +{"name":"param_types","crate_id":9998828442919979782,"allocs":[[2,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[3,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17hccf92e0293fef64eE"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h8b93b91732b76753E"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hb24cc6c46a91a3c0E"}],[20,{"IntrinsicSym":"black_box"}],[22,{"NormalSym":"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u8$GT$3fmt17h27a5398f4d8ad9d3E"}],[23,{"NormalSym":"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u8$GT$3fmt17hd269a011e3ca7289E"}],[24,{"NormalSym":"_ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17hcb5a8318d6a04224E"}],[28,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h1da3fb3c9a0ad6f7E"}],[30,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hac8de08380395531E"}],[33,{"NormalSym":"_ZN4core6option13unwrap_failed17h70bb8fac4436ed8fE"}],[38,{"NormalSym":"_ZN4core6result13unwrap_failed17h4597ccbf28054a7dE"}],[43,{"NormalSym":"_ZN4core6result19Result$LT$T$C$E$GT$3err17h755987751b2b869fE"}],[44,{"NormalSym":"_ZN4core6option15Option$LT$T$GT$6unwrap17h2a337d0d772c7916E"}],[45,{"NormalSym":"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h7da4eb222cd7d806E"}],[46,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[56,{"NoOpSym":""}],[61,{"NoOpSym":""}],[62,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN11param_types4main17hec803b5802952a71E","mono_item_kind":{"MonoItemFn":{"name":"main","id":11,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":1,"projection":[]},{"Aggregate":[{"Adt":[12,0,[{"Type":21}],null,null]},[{"Constant":{"span":110,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":21,"id":18}}},{"Constant":{"span":111,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":34,"id":19}}}]]}]},"span":112},{"kind":{"Assign":[{"local":2,"projection":[]},{"Aggregate":[{"Adt":[12,0,[{"Type":41}],null,null]},[{"Constant":{"span":113,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":41,"id":20}}},{"Constant":{"span":114,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":34,"id":19}}}]]}]},"span":115},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":[{"Field":[1,34]}]}}}]},"span":116},{"kind":{"Assign":[{"local":3,"projection":[]},{"Aggregate":[{"Adt":[13,1,[{"Type":9},{"Type":34}],null,null]},[{"Move":{"local":4,"projection":[]}}]]}]},"span":117},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,41]}]}}}]},"span":118},{"kind":{"Assign":[{"local":5,"projection":[]},{"Aggregate":[{"Adt":[13,0,[{"Type":41},{"Type":9}],null,null]},[{"Move":{"local":6,"projection":[]}}]]}]},"span":119}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":108,"user_ty":null,"const_":{"kind":"ZeroSized","ty":43,"id":17}}},"args":[{"Copy":{"local":3,"projection":[]}}],"destination":{"local":8,"projection":[]},"target":1,"unwind":"Continue"}},"span":109}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":120,"user_ty":null,"const_":{"kind":"ZeroSized","ty":44,"id":21}}},"args":[{"Move":{"local":8,"projection":[]}}],"destination":{"local":7,"projection":[]},"target":2,"unwind":"Continue"}},"span":121}},{"statements":[{"kind":{"Assign":[{"local":10,"projection":[]},{"Cast":["IntToInt",{"Copy":{"local":7,"projection":[]}},41]}]},"span":124}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":122,"user_ty":null,"const_":{"kind":"ZeroSized","ty":45,"id":22}}},"args":[{"Copy":{"local":5,"projection":[]}}],"destination":{"local":11,"projection":[]},"target":3,"unwind":"Continue"}},"span":123}},{"statements":[{"kind":{"Assign":[{"local":9,"projection":[]},{"BinaryOp":["Eq",{"Move":{"local":10,"projection":[]}},{"Move":{"local":11,"projection":[]}}]}]},"span":125}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":9,"projection":[]}},"targets":{"branches":[[0,5]],"otherwise":4}}},"span":125}},{"statements":[],"terminator":{"kind":"Return","span":126}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":127,"user_ty":null,"const_":{"kind":"ZeroSized","ty":46,"id":23}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,1]]},"align":8,"mutability":"Mut"}},"ty":39,"id":24}}}],"destination":{"local":12,"projection":[]},"target":null,"unwind":"Continue"}},"span":127}}],"locals":[{"ty":1,"span":128,"mutability":"Mut"},{"ty":47,"span":129,"mutability":"Not"},{"ty":48,"span":130,"mutability":"Not"},{"ty":37,"span":131,"mutability":"Not"},{"ty":34,"span":116,"mutability":"Mut"},{"ty":42,"span":132,"mutability":"Not"},{"ty":41,"span":118,"mutability":"Mut"},{"ty":34,"span":133,"mutability":"Not"},{"ty":35,"span":109,"mutability":"Mut"},{"ty":49,"span":125,"mutability":"Mut"},{"ty":41,"span":124,"mutability":"Mut"},{"ty":41,"span":123,"mutability":"Mut"},{"ty":36,"span":127,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"a","source_info":{"span":129,"scope":1},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":null},{"name":"b","source_info":{"span":130,"scope":2},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":null},{"name":"c","source_info":{"span":131,"scope":3},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":null},{"name":"d","source_info":{"span":132,"scope":4},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":null},{"name":"x","source_info":{"span":133,"scope":5},"composite":null,"value":{"Place":{"local":7,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":134}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start17h003add85db73f6b6E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hac8de08380395531E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17hccf92e0293fef64eE","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u8$GT$3fmt17hee39e79a180cddbfE","mono_item_kind":{"MonoItemFn":{"name":"core::fmt::num::::fmt","id":3,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":3},"span":44},{"kind":{"StorageLive":4},"span":45},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":2,"projection":["Deref",{"Field":[0,21]}]}}}]},"span":45},{"kind":{"Assign":[{"local":3,"projection":[]},{"BinaryOp":["BitAnd",{"Move":{"local":4,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[16,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":21,"id":6}}}]}]},"span":44},{"kind":{"StorageDead":4},"span":46}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":3,"projection":[]}},"targets":{"branches":[[0,2]],"otherwise":1}}},"span":43}},{"statements":[{"kind":{"StorageDead":3},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":47,"user_ty":null,"const_":{"kind":"ZeroSized","ty":22,"id":7}}},"args":[{"Move":{"local":1,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":6,"unwind":"Continue"}},"span":48}},{"statements":[{"kind":{"StorageDead":3},"span":43},{"kind":{"StorageLive":5},"span":50},{"kind":{"StorageLive":6},"span":51},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":["Deref",{"Field":[0,21]}]}}}]},"span":51},{"kind":{"Assign":[{"local":5,"projection":[]},{"BinaryOp":["BitAnd",{"Move":{"local":6,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[32,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":21,"id":8}}}]}]},"span":50},{"kind":{"StorageDead":6},"span":52}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":5,"projection":[]}},"targets":{"branches":[[0,4]],"otherwise":3}}},"span":49}},{"statements":[{"kind":{"StorageDead":5},"span":49}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":53,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":9}}},"args":[{"Move":{"local":1,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":5,"unwind":"Continue"}},"span":54}},{"statements":[{"kind":{"StorageDead":5},"span":49}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":55,"user_ty":null,"const_":{"kind":"ZeroSized","ty":24,"id":10}}},"args":[{"Move":{"local":1,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":5,"unwind":"Continue"}},"span":56}},{"statements":[],"terminator":{"kind":{"Goto":{"target":6}},"span":57}},{"statements":[],"terminator":{"kind":"Return","span":58}}],"locals":[{"ty":25,"span":59,"mutability":"Mut"},{"ty":26,"span":60,"mutability":"Not"},{"ty":27,"span":61,"mutability":"Not"},{"ty":21,"span":44,"mutability":"Mut"},{"ty":21,"span":45,"mutability":"Mut"},{"ty":21,"span":50,"mutability":"Mut"},{"ty":21,"span":51,"mutability":"Mut"}],"arg_count":2,"var_debug_info":[{"name":"self","source_info":{"span":60,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"f","source_info":{"span":61,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"self","source_info":{"span":62,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":63,"scope":2},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":64}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hd2eb3214ecb60cc5E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":65,"user_ty":null,"const_":{"kind":"ZeroSized","ty":28,"id":11}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":65}},{"statements":[],"terminator":{"kind":"Return","span":65}}],"locals":[{"ty":16,"span":65,"mutability":"Mut"},{"ty":29,"span":65,"mutability":"Not"},{"ty":1,"span":65,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":65}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h1da3fb3c9a0ad6f7E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":4,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":65}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":65,"user_ty":null,"const_":{"kind":"ZeroSized","ty":30,"id":12}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":65}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":65}},{"statements":[],"terminator":{"kind":"Return","span":65}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":65}},{"statements":[],"terminator":{"kind":"Resume","span":65}}],"locals":[{"ty":16,"span":65,"mutability":"Mut"},{"ty":12,"span":65,"mutability":"Not"},{"ty":1,"span":65,"mutability":"Not"},{"ty":31,"span":65,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":65}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hb24cc6c46a91a3c0E","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":65}},{"statements":[],"terminator":{"kind":"Return","span":65}}],"locals":[{"ty":1,"span":65,"mutability":"Mut"},{"ty":7,"span":65,"mutability":"Not"},{"ty":1,"span":65,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":65}}},"details":null},{"symbol_name":"_ZN4core3ptr23drop_in_place$LT$u8$GT$17h6686941d127864c4E","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::","id":5,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":66}}],"locals":[{"ty":1,"span":66,"mutability":"Mut"},{"ty":32,"span":66,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":66}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17ha5b177f23b506e95E","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":5,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":66}}],"locals":[{"ty":1,"span":66,"mutability":"Mut"},{"ty":29,"span":66,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":66}}},"details":null},{"symbol_name":"_ZN4core6option15Option$LT$T$GT$6unwrap17h2a337d0d772c7916E","mono_item_kind":{"MonoItemFn":{"name":"std::option::Option::::unwrap","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":2,"projection":[]},{"Discriminant":{"local":1,"projection":[]}}]},"span":68}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":2,"projection":[]}},"targets":{"branches":[[0,2],[1,3]],"otherwise":1}}},"span":67}},{"statements":[],"terminator":{"kind":"Unreachable","span":68}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":69,"user_ty":null,"const_":{"kind":"ZeroSized","ty":33,"id":13}}},"args":[],"destination":{"local":3,"projection":[]},"target":null,"unwind":"Continue"}},"span":70}},{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Move":{"local":1,"projection":[{"Downcast":1},{"Field":[0,34]}]}}}]},"span":72}],"terminator":{"kind":"Return","span":71}}],"locals":[{"ty":34,"span":73,"mutability":"Mut"},{"ty":35,"span":74,"mutability":"Not"},{"ty":6,"span":75,"mutability":"Mut"},{"ty":36,"span":70,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":74,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"val","source_info":{"span":72,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":76}}},"details":null},{"symbol_name":"_ZN4core6result19Result$LT$T$C$E$GT$3err17h755987751b2b869fE","mono_item_kind":{"MonoItemFn":{"name":"std::result::Result::::err","id":7,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":2,"projection":[]},{"Discriminant":{"local":1,"projection":[]}}]},"span":78}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":2,"projection":[]}},"targets":{"branches":[[0,3],[1,2]],"otherwise":1}}},"span":77}},{"statements":[],"terminator":{"kind":"Unreachable","span":78}},{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Move":{"local":1,"projection":[{"Downcast":1},{"Field":[0,34]}]}}}]},"span":80},{"kind":{"Assign":[{"local":0,"projection":[]},{"Aggregate":[{"Adt":[8,1,[{"Type":34}],null,null]},[{"Copy":{"local":3,"projection":[]}}]]}]},"span":81}],"terminator":{"kind":{"Goto":{"target":6}},"span":79}},{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Aggregate":[{"Adt":[8,0,[{"Type":34}],null,null]},[]]}]},"span":82}],"terminator":{"kind":{"Goto":{"target":6}},"span":82}},{"statements":[],"terminator":{"kind":"Return","span":83}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Continue"}},"span":84}},{"statements":[{"kind":{"Assign":[{"local":4,"projection":[]},{"Discriminant":{"local":1,"projection":[]}}]},"span":84}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":4,"projection":[]}},"targets":{"branches":[[1,4],[0,5]],"otherwise":1}}},"span":84}}],"locals":[{"ty":35,"span":85,"mutability":"Mut"},{"ty":37,"span":86,"mutability":"Not"},{"ty":6,"span":87,"mutability":"Mut"},{"ty":34,"span":80,"mutability":"Not"},{"ty":6,"span":84,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":86,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"x","source_info":{"span":80,"scope":1},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":88}}},"details":null},{"symbol_name":"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h7da4eb222cd7d806E","mono_item_kind":{"MonoItemFn":{"name":"std::result::Result::::unwrap","id":9,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":2,"projection":[]},{"Discriminant":{"local":1,"projection":[]}}]},"span":90}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":2,"projection":[]}},"targets":{"branches":[[0,3],[1,2]],"otherwise":1}}},"span":89}},{"statements":[],"terminator":{"kind":"Unreachable","span":90}},{"statements":[{"kind":{"StorageLive":3},"span":94},{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Move":{"local":1,"projection":[{"Downcast":1},{"Field":[0,9]}]}}}]},"span":94},{"kind":{"StorageLive":5},"span":95},{"kind":{"Assign":[{"local":6,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":3,"projection":[]}]}]},"span":95},{"kind":{"Assign":[{"local":5,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":6,"projection":[]}},40]}]},"span":95}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":91,"user_ty":null,"const_":{"kind":"ZeroSized","ty":38,"id":14}}},"args":[{"Constant":{"span":92,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,43,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":39,"id":15}}},{"Move":{"local":5,"projection":[]}}],"destination":{"local":4,"projection":[]},"target":null,"unwind":{"Cleanup":4}}},"span":93}},{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Move":{"local":1,"projection":[{"Downcast":0},{"Field":[0,41]}]}}}]},"span":97}],"terminator":{"kind":"Return","span":96}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":3,"projection":[]},"target":5,"unwind":"Terminate"}},"span":98}},{"statements":[],"terminator":{"kind":"Resume","span":99}}],"locals":[{"ty":41,"span":100,"mutability":"Mut"},{"ty":42,"span":101,"mutability":"Not"},{"ty":6,"span":102,"mutability":"Mut"},{"ty":9,"span":94,"mutability":"Not"},{"ty":36,"span":93,"mutability":"Mut"},{"ty":40,"span":95,"mutability":"Mut"},{"ty":26,"span":95,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":101,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"t","source_info":{"span":97,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"e","source_info":{"span":94,"scope":2},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":99}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h8b93b91732b76753E","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":10,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":104,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":16}}}}]},"span":104}],"terminator":{"kind":"Return","span":103}}],"locals":[{"ty":17,"span":105,"mutability":"Mut"},{"ty":1,"span":106,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":106,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":107}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":63,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":64,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":13,"discriminants":[0,1],"fields":[[6],[36]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":33,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":31,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[21,{"PrimitiveType":{"Uint":"U32"}}],[25,{"EnumType":{"name":"std::result::Result<(), std::fmt::Error>","adt_def":13,"discriminants":[0,1],"fields":[[1],[55]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Multiple":{"tag":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}},"tag_encoding":"Direct","tag_field":0,"variants":[{"fields":{"Arbitrary":{"offsets":[{"num_bits":8}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}}},"abi_align":1,"size":{"num_bits":8}},{"fields":{"Arbitrary":{"offsets":[{"num_bits":8}]}},"variants":{"Single":{"index":1}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}}},"abi_align":1,"size":{"num_bits":8}}]}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}}},"abi_align":1,"size":{"num_bits":8}}}}],[26,{"RefType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[27,{"RefType":{"pointee_type":50,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[29,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[31,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[32,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[34,{"PrimitiveType":{"Uint":"Usize"}}],[35,{"EnumType":{"name":"std::option::Option","adt_def":8,"discriminants":[0,1],"fields":[[],[34]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Multiple":{"tag":{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":1}}},"tag_encoding":"Direct","tag_field":0,"variants":[{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":64}},{"fields":{"Arbitrary":{"offsets":[{"num_bits":64}]}},"variants":{"Single":{"index":1}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":1}}},{"Union":{"value":{"Int":{"length":"I64","signed":false}}}}]},"abi_align":8,"size":{"num_bits":128}}]}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":1}}},{"Union":{"value":{"Int":{"length":"I64","signed":false}}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[36,"VoidType"],[37,{"EnumType":{"name":"std::result::Result","adt_def":13,"discriminants":[0,1],"fields":[[9],[34]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Multiple":{"tag":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}},"tag_encoding":"Direct","tag_field":0,"variants":[{"fields":{"Arbitrary":{"offsets":[{"num_bits":8}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":16}},{"fields":{"Arbitrary":{"offsets":[{"num_bits":64}]}},"variants":{"Single":{"index":1}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":128}}]}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":128}}}}],[39,{"RefType":{"pointee_type":59,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[40,{"RefType":{"pointee_type":57,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[41,{"PrimitiveType":{"Uint":"U64"}}],[42,{"EnumType":{"name":"std::result::Result","adt_def":13,"discriminants":[0,1],"fields":[[41],[9]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Multiple":{"tag":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}},"tag_encoding":"Direct","tag_field":0,"variants":[{"fields":{"Arbitrary":{"offsets":[{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":128}},{"fields":{"Arbitrary":{"offsets":[{"num_bits":8}]}},"variants":{"Single":{"index":1}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":16}}]}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":128}}}}],[47,{"StructType":{"name":"WithParam","adt_def":12,"fields":[21,34],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":64},{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I32","signed":false}},"valid_range":{"start":0,"end":4294967295}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[48,{"StructType":{"name":"WithParam","adt_def":12,"fields":[41,34],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[49,{"PrimitiveType":"Bool"}],[50,{"StructType":{"name":"std::fmt::Formatter<'_>","adt_def":15,"fields":[21,51,52,35,35,53],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":416},{"num_bits":384},{"num_bits":448},{"num_bits":0},{"num_bits":128},{"num_bits":256}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":512}}}}],[51,{"PrimitiveType":"Char"}],[52,{"EnumType":{"name":"core::fmt::rt::Alignment","adt_def":22,"discriminants":[0,1,2,3],"fields":[[],[],[],[]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Multiple":{"tag":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":3}}},"tag_encoding":"Direct","tag_field":0,"variants":[{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":8}},{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":1}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":8}},{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":2}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":8}},{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":3}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":8}}]}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":3}}}},"abi_align":1,"size":{"num_bits":8}}}}],[53,{"RefType":{"pointee_type":54,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[55,{"StructType":{"name":"std::fmt::Error","adt_def":27,"fields":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[58,{"RefType":{"pointee_type":60,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[59,{"PrimitiveType":"Str"}],[60,{"StructType":{"name":"std::panic::Location<'_>","adt_def":38,"fields":[39,21,21],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[64,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",181,24,181,43]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs",1937,9,1937,59]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs",1937,9,1937,19]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs",1937,58,1937,59]],[47,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",182,25,182,43]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",182,25,182,52]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",183,31,183,50]],[50,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs",1941,9,1941,59]],[51,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs",1941,9,1941,19]],[52,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs",1941,58,1941,59]],[53,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",184,25,184,43]],[54,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",184,25,184,52]],[55,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",186,25,186,42]],[56,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",186,25,186,51]],[57,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",181,21,187,22]],[58,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",188,18,188,18]],[60,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",180,24,180,29]],[61,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",180,31,180,32]],[62,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs",1936,24,1936,29]],[63,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs",1940,24,1940,29]],[64,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/num.rs",180,17,188,18]],[65,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[66,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[67,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",970,9,970,19]],[68,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",970,15,970,19]],[69,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",972,21,972,34]],[70,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",972,21,972,36]],[71,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",974,6,974,6]],[72,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",971,18,971,21]],[74,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",969,25,969,29]],[76,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",969,5,974,6]],[77,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",682,9,682,19]],[78,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",682,15,682,19]],[79,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",684,29,684,30]],[80,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",684,17,684,18]],[81,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",684,23,684,30]],[82,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",683,22,683,26]],[83,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",686,6,686,6]],[84,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",686,5,686,6]],[86,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",681,16,681,20]],[88,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",681,5,686,6]],[89,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1102,9,1102,19]],[90,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1102,15,1102,19]],[91,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1104,23,1104,36]],[92,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1104,37,1104,82]],[93,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1104,23,1104,87]],[94,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1104,17,1104,18]],[95,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1104,84,1104,86]],[96,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1106,6,1106,6]],[97,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1103,16,1103,17]],[98,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1104,86,1104,87]],[99,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1098,5,1106,6]],[101,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs",1098,19,1098,23]],[103,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[104,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[106,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[107,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[108,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",16,15,16,18]],[109,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",16,13,16,20]],[110,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",9,46,9,48]],[111,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",9,59,9,61]],[112,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",9,29,9,62]],[113,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",11,46,11,48]],[114,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",11,59,11,61]],[115,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",11,29,11,62]],[116,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",13,36,13,45]],[117,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",13,32,13,46]],[118,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",14,34,14,41]],[119,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",14,31,14,42]],[120,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",16,21,16,27]],[121,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",16,13,16,29]],[122,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",18,27,18,33]],[123,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",18,25,18,35]],[124,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",18,13,18,21]],[125,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",18,13,18,35]],[126,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",19,2,19,2]],[127,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",18,5,18,36]],[129,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",9,9,9,10]],[130,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",11,9,11,10]],[131,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",13,9,13,10]],[132,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",14,9,14,10]],[133,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",16,9,16,10]],[134,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/param_types.rs",8,1,19,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/recursion-simple.smir.json b/tests/integration/programs/recursion-simple.smir.json new file mode 100644 index 0000000..7780ea9 --- /dev/null +++ b/tests/integration/programs/recursion-simple.smir.json @@ -0,0 +1 @@ +{"name":"recursion_simple","crate_id":13164299779024712838,"allocs":[[1,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h955faef96ca50e16E"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h8ce674137a34be9dE"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hdf81d001aa62ba1dE"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h1b34976966b5d60fE"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h47124947f56843a4E"}],[27,{"NormalSym":"_ZN16recursion_simple12sum_to_n_rec17he6087e74219aae9aE"}],[29,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[35,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN16recursion_simple12sum_to_n_rec17he6087e74219aae9aE","mono_item_kind":{"MonoItemFn":{"name":"sum_to_n_rec","id":6,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"SwitchInt":{"discr":{"Copy":{"local":1,"projection":[]}},"targets":{"branches":[[0,1]],"otherwise":2}}},"span":50}},{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":52,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":9}}}}]},"span":52}],"terminator":{"kind":{"Goto":{"target":6}},"span":51}},{"statements":[{"kind":{"Assign":[{"local":4,"projection":[]},{"CheckedBinaryOp":["Sub",{"Copy":{"local":1,"projection":[]}},{"Constant":{"span":53,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":10}}}]}]},"span":54}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":4,"projection":[{"Field":[1,26]}]}},"expected":false,"msg":{"Overflow":["Sub",{"Copy":{"local":1,"projection":[]}},{"Constant":{"span":53,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":10}}}]},"target":3,"unwind":"Continue"}},"span":54}},{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Move":{"local":4,"projection":[{"Field":[0,25]}]}}}]},"span":54}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":55,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":11}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":4,"unwind":"Continue"}},"span":56}},{"statements":[{"kind":{"Assign":[{"local":5,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":1,"projection":[]}},{"Copy":{"local":2,"projection":[]}}]}]},"span":57}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":5,"projection":[{"Field":[1,26]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":1,"projection":[]}},{"Move":{"local":2,"projection":[]}}]},"target":5,"unwind":"Continue"}},"span":57}},{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Move":{"local":5,"projection":[{"Field":[0,25]}]}}}]},"span":57}],"terminator":{"kind":{"Goto":{"target":6}},"span":51}},{"statements":[],"terminator":{"kind":"Return","span":58}}],"locals":[{"ty":25,"span":59,"mutability":"Mut"},{"ty":25,"span":60,"mutability":"Not"},{"ty":25,"span":56,"mutability":"Mut"},{"ty":25,"span":54,"mutability":"Mut"},{"ty":28,"span":54,"mutability":"Mut"},{"ty":28,"span":57,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"n","source_info":{"span":60,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":61}}},"details":null},{"symbol_name":"_ZN16recursion_simple4main17h08d6a0945650288aE","mono_item_kind":{"MonoItemFn":{"name":"main","id":7,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":62,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":11}}},"args":[{"Constant":{"span":63,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[10,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":12}}}],"destination":{"local":1,"projection":[]},"target":1,"unwind":"Continue"}},"span":64}},{"statements":[],"terminator":{"kind":{"SwitchInt":{"discr":{"Copy":{"local":1,"projection":[]}},"targets":{"branches":[[55,2]],"otherwise":3}}},"span":65}},{"statements":[],"terminator":{"kind":"Return","span":66}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":67,"user_ty":null,"const_":{"kind":"ZeroSized","ty":29,"id":13}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":30,"id":14}}}],"destination":{"local":2,"projection":[]},"target":null,"unwind":"Continue"}},"span":67}}],"locals":[{"ty":1,"span":68,"mutability":"Mut"},{"ty":25,"span":69,"mutability":"Not"},{"ty":31,"span":67,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"ans","source_info":{"span":69,"scope":1},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":70}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start17h187eadc71a6c8ca3E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h47124947f56843a4E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h955faef96ca50e16E","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hc0cd0502edf6791cE","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h1b34976966b5d60fE","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hdf81d001aa62ba1dE","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h1700b14d4441957bE","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h8ce674137a34be9dE","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":36,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":37,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":23,"discriminants":[0,1],"fields":[[6],[31]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":16,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":14,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[25,{"PrimitiveType":{"Uint":"U32"}}],[26,{"PrimitiveType":"Bool"}],[28,{"TupleType":{"types":[25,26],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":32}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I32","signed":false}},"valid_range":{"start":0,"end":4294967295}}},{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}}]},"abi_align":4,"size":{"num_bits":64}}}}],[30,{"RefType":{"pointee_type":33,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[31,"VoidType"],[32,{"RefType":{"pointee_type":34,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[33,{"PrimitiveType":"Str"}],[34,{"StructType":{"name":"std::panic::Location<'_>","adt_def":9,"fields":[30,25,25],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[37,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",2,8,2,14]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",2,5,6,6]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",3,9,3,10]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",5,30,5,31]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",5,26,5,31]],[55,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",5,13,5,25]],[56,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",5,13,5,32]],[57,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",5,9,5,32]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",7,2,7,2]],[60,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",1,17,1,18]],[61,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",1,1,7,2]],[62,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",10,15,10,27]],[63,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",10,28,10,30]],[64,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",10,15,10,31]],[65,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",12,13,12,22]],[66,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",13,2,13,2]],[67,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",12,5,12,23]],[69,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",10,9,10,12]],[70,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/recursion-simple.rs",9,1,13,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/ref-deref.smir.json b/tests/integration/programs/ref-deref.smir.json new file mode 100644 index 0000000..7074ca1 --- /dev/null +++ b/tests/integration/programs/ref-deref.smir.json @@ -0,0 +1 @@ +{"name":"ref_deref","crate_id":16374540432056233309,"allocs":[[1,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h2ef058eb2fdd2504E"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hb9187d0ddec97010E"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hcb1178c5f7f4447eE"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hcfa1e6c610d91defE"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h1666b77461697a55E"}],[25,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[35,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN3std2rt10lang_start17he2b40f17c8cc0024E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h1666b77461697a55E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h2ef058eb2fdd2504E","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17he538d3b98a0deeb0E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hcb1178c5f7f4447eE","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hcfa1e6c610d91defE","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h51b9ce8fc9d7449eE","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hb9187d0ddec97010E","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null},{"symbol_name":"_ZN9ref_deref4main17hafa2aaed1169ba33E","mono_item_kind":{"MonoItemFn":{"name":"main","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":1,"projection":[]},{"Use":{"Constant":{"span":51,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[42,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":9}}}}]},"span":51},{"kind":{"Assign":[{"local":2,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":1,"projection":[]}]}]},"span":52},{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Copy":{"local":2,"projection":["Deref"]}}}]},"span":53}],"terminator":{"kind":{"SwitchInt":{"discr":{"Copy":{"local":3,"projection":[]}},"targets":{"branches":[[42,1]],"otherwise":2}}},"span":50}},{"statements":[],"terminator":{"kind":"Return","span":54}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":55,"user_ty":null,"const_":{"kind":"ZeroSized","ty":25,"id":10}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":26,"id":11}}}],"destination":{"local":4,"projection":[]},"target":null,"unwind":"Continue"}},"span":55}}],"locals":[{"ty":1,"span":56,"mutability":"Mut"},{"ty":16,"span":57,"mutability":"Not"},{"ty":27,"span":58,"mutability":"Not"},{"ty":16,"span":59,"mutability":"Not"},{"ty":28,"span":55,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"a","source_info":{"span":57,"scope":1},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":null},{"name":"b","source_info":{"span":58,"scope":2},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":null},{"name":"c","source_info":{"span":59,"scope":3},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":60}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":33,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":34,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":23,"discriminants":[0,1],"fields":[[6],[28]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":9,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":7,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[26,{"RefType":{"pointee_type":30,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[27,{"RefType":{"pointee_type":16,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[28,"VoidType"],[29,{"RefType":{"pointee_type":31,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[30,{"PrimitiveType":"Str"}],[31,{"StructType":{"name":"std::panic::Location<'_>","adt_def":14,"fields":[26,32,32],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[32,{"PrimitiveType":{"Uint":"U32"}}],[34,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",6,13,6,20]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",2,13,2,15]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",3,13,3,15]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",4,13,4,15]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",7,2,7,2]],[55,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",6,5,6,21]],[57,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",2,9,2,10]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",3,9,3,10]],[59,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",4,9,4,10]],[60,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/ref-deref.rs",1,1,7,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/shl_min.smir.json b/tests/integration/programs/shl_min.smir.json new file mode 100644 index 0000000..767a187 --- /dev/null +++ b/tests/integration/programs/shl_min.smir.json @@ -0,0 +1 @@ +{"name":"shl_min","crate_id":3420852267406056155,"allocs":[[5,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[6,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[7,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[8,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}],[9,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17he30d05590a28f9a1E"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17haa0e1f8db80e3800E"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h101f83cec1482588E"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hc0612b0fc13e25d0E"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17ha72e71ad4d21183aE"}],[27,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[33,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN3std2rt10lang_start17h0baf8adbdbbdfddaE","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17ha72e71ad4d21183aE","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17he30d05590a28f9a1E","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h1feec67c348e4f68E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h101f83cec1482588E","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hc0612b0fc13e25d0E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h758c2ac75a2527caE","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17haa0e1f8db80e3800E","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null},{"symbol_name":"_ZN7shl_min4main17hd5eabd20dc15e68aE","mono_item_kind":{"MonoItemFn":{"name":"main","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":2,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":51,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}},25]}]},"span":52},{"kind":{"Assign":[{"local":3,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":2,"projection":[]}},{"Constant":{"span":52,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[8,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":11}}}]}]},"span":52}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":3,"projection":[]}},"expected":true,"msg":{"Overflow":["Shl",{"Constant":{"span":50,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[128],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":2,"id":9}}},{"Constant":{"span":51,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]},"target":1,"unwind":"Continue"}},"span":52}},{"statements":[{"kind":{"Assign":[{"local":1,"projection":[]},{"BinaryOp":["Shl",{"Constant":{"span":50,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[128],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":2,"id":9}}},{"Constant":{"span":51,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]}]},"span":52}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":1,"projection":[]}},"targets":{"branches":[[0,2]],"otherwise":3}}},"span":53}},{"statements":[{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":55,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}},25]}]},"span":56},{"kind":{"Assign":[{"local":7,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":6,"projection":[]}},{"Constant":{"span":56,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[16,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":13}}}]}]},"span":56}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":7,"projection":[]}},"expected":true,"msg":{"Overflow":["Shl",{"Constant":{"span":54,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,128],"provenance":{"ptrs":[]},"align":2,"mutability":"Mut"}},"ty":26,"id":12}}},{"Constant":{"span":55,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]},"target":4,"unwind":"Continue"}},"span":56}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":57,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":14}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,35,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":28,"id":15}}}],"destination":{"local":4,"projection":[]},"target":null,"unwind":"Continue"}},"span":57}},{"statements":[{"kind":{"Assign":[{"local":5,"projection":[]},{"BinaryOp":["Shl",{"Constant":{"span":54,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,128],"provenance":{"ptrs":[]},"align":2,"mutability":"Mut"}},"ty":26,"id":12}}},{"Constant":{"span":55,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]}]},"span":56}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":5,"projection":[]}},"targets":{"branches":[[0,5]],"otherwise":6}}},"span":58}},{"statements":[{"kind":{"Assign":[{"local":10,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":60,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}},25]}]},"span":61},{"kind":{"Assign":[{"local":11,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":10,"projection":[]}},{"Constant":{"span":61,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[32,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":17}}}]}]},"span":61}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":11,"projection":[]}},"expected":true,"msg":{"Overflow":["Shl",{"Constant":{"span":59,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,128],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":16}}},{"Constant":{"span":60,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]},"target":7,"unwind":"Continue"}},"span":61}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":62,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":14}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,1]]},"align":8,"mutability":"Mut"}},"ty":28,"id":18}}}],"destination":{"local":8,"projection":[]},"target":null,"unwind":"Continue"}},"span":62}},{"statements":[{"kind":{"Assign":[{"local":9,"projection":[]},{"BinaryOp":["Shl",{"Constant":{"span":59,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,128],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":16}}},{"Constant":{"span":60,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]}]},"span":61}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":9,"projection":[]}},"targets":{"branches":[[0,8]],"otherwise":9}}},"span":63}},{"statements":[{"kind":{"Assign":[{"local":14,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":65,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}},25]}]},"span":66},{"kind":{"Assign":[{"local":15,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":14,"projection":[]}},{"Constant":{"span":66,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[64,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":20}}}]}]},"span":66}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":15,"projection":[]}},"expected":true,"msg":{"Overflow":["Shl",{"Constant":{"span":64,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,128],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":29,"id":19}}},{"Constant":{"span":65,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]},"target":10,"unwind":"Continue"}},"span":66}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":67,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":14}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,43,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,2]]},"align":8,"mutability":"Mut"}},"ty":28,"id":21}}}],"destination":{"local":12,"projection":[]},"target":null,"unwind":"Continue"}},"span":67}},{"statements":[{"kind":{"Assign":[{"local":13,"projection":[]},{"BinaryOp":["Shl",{"Constant":{"span":64,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,128],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":29,"id":19}}},{"Constant":{"span":65,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]}]},"span":66}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":13,"projection":[]}},"targets":{"branches":[[0,11]],"otherwise":12}}},"span":68}},{"statements":[{"kind":{"Assign":[{"local":18,"projection":[]},{"Cast":["IntToInt",{"Constant":{"span":70,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}},25]}]},"span":71},{"kind":{"Assign":[{"local":19,"projection":[]},{"BinaryOp":["Lt",{"Move":{"local":18,"projection":[]}},{"Constant":{"span":71,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[128,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":25,"id":23}}}]}]},"span":71}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":19,"projection":[]}},"expected":true,"msg":{"Overflow":["Shl",{"Constant":{"span":69,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128],"provenance":{"ptrs":[]},"align":16,"mutability":"Mut"}},"ty":30,"id":22}}},{"Constant":{"span":70,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]},"target":13,"unwind":"Continue"}},"span":71}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":72,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":14}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,3]]},"align":8,"mutability":"Mut"}},"ty":28,"id":24}}}],"destination":{"local":16,"projection":[]},"target":null,"unwind":"Continue"}},"span":72}},{"statements":[{"kind":{"Assign":[{"local":17,"projection":[]},{"BinaryOp":["Shl",{"Constant":{"span":69,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128],"provenance":{"ptrs":[]},"align":16,"mutability":"Mut"}},"ty":30,"id":22}}},{"Constant":{"span":70,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":16,"id":10}}}]}]},"span":71}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":17,"projection":[]}},"targets":{"branches":[[0,14]],"otherwise":15}}},"span":73}},{"statements":[],"terminator":{"kind":"Return","span":74}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":75,"user_ty":null,"const_":{"kind":"ZeroSized","ty":27,"id":14}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,73,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,4]]},"align":8,"mutability":"Mut"}},"ty":28,"id":25}}}],"destination":{"local":20,"projection":[]},"target":null,"unwind":"Continue"}},"span":75}}],"locals":[{"ty":1,"span":76,"mutability":"Mut"},{"ty":2,"span":52,"mutability":"Mut"},{"ty":25,"span":52,"mutability":"Mut"},{"ty":31,"span":52,"mutability":"Mut"},{"ty":32,"span":57,"mutability":"Mut"},{"ty":26,"span":56,"mutability":"Mut"},{"ty":25,"span":56,"mutability":"Mut"},{"ty":31,"span":56,"mutability":"Mut"},{"ty":32,"span":62,"mutability":"Mut"},{"ty":16,"span":61,"mutability":"Mut"},{"ty":25,"span":61,"mutability":"Mut"},{"ty":31,"span":61,"mutability":"Mut"},{"ty":32,"span":67,"mutability":"Mut"},{"ty":29,"span":66,"mutability":"Mut"},{"ty":25,"span":66,"mutability":"Mut"},{"ty":31,"span":66,"mutability":"Mut"},{"ty":32,"span":72,"mutability":"Mut"},{"ty":30,"span":71,"mutability":"Mut"},{"ty":25,"span":71,"mutability":"Mut"},{"ty":31,"span":71,"mutability":"Mut"},{"ty":32,"span":75,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[],"spread_arg":null,"span":77}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[2,{"PrimitiveType":{"Int":"I8"}}],[5,{"RefType":{"pointee_type":34,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":35,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":14,"discriminants":[0,1],"fields":[[6],[32]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":19,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":17,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[25,{"PrimitiveType":{"Uint":"U32"}}],[26,{"PrimitiveType":{"Int":"I16"}}],[28,{"RefType":{"pointee_type":37,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[29,{"PrimitiveType":{"Int":"I64"}}],[30,{"PrimitiveType":{"Int":"I128"}}],[31,{"PrimitiveType":"Bool"}],[32,"VoidType"],[35,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[36,{"RefType":{"pointee_type":38,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[37,{"PrimitiveType":"Str"}],[38,{"StructType":{"name":"std::panic::Location<'_>","adt_def":22,"fields":[28,25,25],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",2,13,2,20]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",2,24,2,25]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",2,13,2,25]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",2,13,2,30]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",3,13,3,23]],[55,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",3,27,3,28]],[56,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",3,13,3,28]],[57,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",2,5,2,31]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",3,13,3,33]],[59,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",4,13,4,28]],[60,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",4,32,4,33]],[61,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",4,13,4,33]],[62,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",3,5,3,34]],[63,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",4,13,4,38]],[64,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",5,13,5,37]],[65,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",5,41,5,42]],[66,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",5,13,5,42]],[67,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",4,5,4,39]],[68,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",5,13,5,47]],[69,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",6,13,6,58]],[70,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",6,62,6,63]],[71,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",6,13,6,63]],[72,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",5,5,5,48]],[73,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",6,13,6,68]],[74,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",7,2,7,2]],[75,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",6,5,6,69]],[77,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/shl_min.rs",1,1,7,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/slice.smir.json b/tests/integration/programs/slice.smir.json new file mode 100644 index 0000000..0a7a9b3 --- /dev/null +++ b/tests/integration/programs/slice.smir.json @@ -0,0 +1 @@ +{"name":"slice","crate_id":3542931212552783992,"allocs":[[0,{"Memory":{"bytes":[2,0,0,0,3,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Not"}}],[2,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[1,{"NormalSym":"_ZN4core5slice5index24slice_end_index_len_fail17h912400a6b6428adeE"}],[4,{"NormalSym":"_ZN4core5slice5index22slice_index_order_fail17hfa6f28f0c5686763E"}],[11,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[24,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h047bb628ebce27a9E"}],[25,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h8b0d5947688de0e1E"}],[30,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h68dc1ae5b3dacc3fE"}],[31,{"IntrinsicSym":"black_box"}],[32,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17hedee77485ecfbed1E"}],[34,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h9f86ded30f3cb331E"}],[36,{"NormalSym":"_ZN4core5slice5index74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he6b4b6468b73e82bE"}],[38,{"NormalSym":"_ZN69_$LT$T$u20$as$u20$core..array..equality..SpecArrayEq$LT$U$C$_$GT$$GT$7spec_eq17ha98d81a4a2a99025E"}],[44,{"NormalSym":"_ZN4core5array8equality92_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$U$u3b$$u20$N$u5d$$GT$$u20$for$u20$$u5b$T$u5d$$GT$2eq17h51798103dd348aafE"}],[46,{"NormalSym":"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hb1d3c9c94cedbb4eE"}],[47,{"IntrinsicSym":"raw_eq"}],[48,{"NormalSym":"_ZN4core5array85_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u3b$$u20$N$u5d$$GT$5index17hfa0126024a6ede4fE"}],[49,{"NormalSym":"_ZN4core5array8equality96_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$U$u3b$$u20$N$u5d$$GT$$u20$for$u20$$RF$$u5b$T$u5d$$GT$2eq17ha12368e081ad081eE"}],[50,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[60,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hb1d3c9c94cedbb4eE","mono_item_kind":{"MonoItemFn":{"name":" as std::slice::SliceIndex<[i32]>>::index","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":1,"projection":[{"Field":[1,0]}]}}}]},"span":2},{"kind":{"Assign":[{"local":7,"projection":[]},{"Use":{"Copy":{"local":1,"projection":[{"Field":[0,0]}]}}}]},"span":3},{"kind":{"StorageLive":13},"span":0},{"kind":{"Assign":[{"local":13,"projection":[]},{"BinaryOp":["Lt",{"Copy":{"local":6,"projection":[]}},{"Copy":{"local":7,"projection":[]}}]}]},"span":0}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":13,"projection":[]}},"targets":{"branches":[[0,4]],"otherwise":3}}},"span":0}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":4,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":9,"projection":[]}}],"destination":{"local":10,"projection":[]},"target":null,"unwind":"Continue"}},"span":5}},{"statements":[{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageLive":11},"span":8},{"kind":{"StorageLive":12},"span":9},{"kind":{"Assign":[{"local":12,"projection":[]},{"AddressOf":["Not",{"local":2,"projection":["Deref"]}]}]},"span":9},{"kind":{"StorageLive":15},"span":8},{"kind":{"StorageLive":16},"span":10},{"kind":{"Assign":[{"local":16,"projection":[]},{"Cast":["PtrToPtr",{"Copy":{"local":12,"projection":[]}},2]}]},"span":11},{"kind":{"Assign":[{"local":15,"projection":[]},{"BinaryOp":["Offset",{"Copy":{"local":16,"projection":[]}},{"Copy":{"local":7,"projection":[]}}]}]},"span":12},{"kind":{"StorageDead":16},"span":10},{"kind":{"Assign":[{"local":11,"projection":[]},{"Aggregate":[{"RawPtr":[3,"Not"]},[{"Copy":{"local":15,"projection":[]}},{"Copy":{"local":4,"projection":[]}}]]}]},"span":13},{"kind":{"StorageDead":15},"span":8},{"kind":{"StorageDead":12},"span":14},{"kind":{"Assign":[{"local":0,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":11,"projection":["Deref"]}]}]},"span":15},{"kind":{"StorageDead":11},"span":16}],"terminator":{"kind":"Return","span":6}},{"statements":[{"kind":{"StorageDead":13},"span":19},{"kind":{"StorageDead":5},"span":20}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":17,"user_ty":null,"const_":{"kind":"ZeroSized","ty":4,"id":1}}},"args":[{"Move":{"local":7,"projection":[]}},{"Move":{"local":6,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":null,"unwind":"Continue"}},"span":18}},{"statements":[{"kind":{"StorageLive":14},"span":22},{"kind":{"Assign":[{"local":14,"projection":[]},{"BinaryOp":["SubUnchecked",{"Copy":{"local":6,"projection":[]}},{"Copy":{"local":7,"projection":[]}}]}]},"span":23},{"kind":{"Assign":[{"local":5,"projection":[]},{"Aggregate":[{"Adt":[1,1,[{"Type":0}],null,null]},[{"Move":{"local":14,"projection":[]}}]]}]},"span":24},{"kind":{"StorageDead":14},"span":25},{"kind":{"StorageDead":13},"span":19},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":1},{"Field":[0,0]}]}}}]},"span":26},{"kind":{"StorageDead":5},"span":20},{"kind":{"StorageLive":8},"span":21},{"kind":{"Assign":[{"local":9,"projection":[]},{"UnaryOp":["PtrMetadata",{"Copy":{"local":2,"projection":[]}}]}]},"span":27},{"kind":{"Assign":[{"local":8,"projection":[]},{"BinaryOp":["Gt",{"Copy":{"local":6,"projection":[]}},{"Copy":{"local":9,"projection":[]}}]}]},"span":21}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":8,"projection":[]}},"targets":{"branches":[[0,2]],"otherwise":1}}},"span":21}}],"locals":[{"ty":5,"span":28,"mutability":"Mut"},{"ty":6,"span":29,"mutability":"Not"},{"ty":5,"span":30,"mutability":"Not"},{"ty":7,"span":31,"mutability":"Mut"},{"ty":0,"span":26,"mutability":"Not"},{"ty":8,"span":1,"mutability":"Mut"},{"ty":0,"span":2,"mutability":"Mut"},{"ty":0,"span":3,"mutability":"Mut"},{"ty":9,"span":21,"mutability":"Mut"},{"ty":0,"span":27,"mutability":"Mut"},{"ty":7,"span":5,"mutability":"Not"},{"ty":10,"span":8,"mutability":"Not"},{"ty":10,"span":9,"mutability":"Mut"},{"ty":9,"span":0,"mutability":"Mut"},{"ty":0,"span":22,"mutability":"Mut"},{"ty":2,"span":32,"mutability":"Not"},{"ty":2,"span":33,"mutability":"Not"}],"arg_count":2,"var_debug_info":[{"name":"self","source_info":{"span":29,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"slice","source_info":{"span":30,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"new_len","source_info":{"span":26,"scope":1},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":null},{"name":"self","source_info":{"span":34,"scope":2},"composite":null,"value":{"Place":{"local":6,"projection":[]}},"argument_index":1},{"name":"rhs","source_info":{"span":35,"scope":2},"composite":null,"value":{"Place":{"local":7,"projection":[]}},"argument_index":2},{"name":"ptr","source_info":{"span":36,"scope":3},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"offset","source_info":{"span":37,"scope":3},"composite":null,"value":{"Place":{"local":7,"projection":[]}},"argument_index":2},{"name":"len","source_info":{"span":38,"scope":3},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":3},{"name":"ptr","source_info":{"span":32,"scope":4},"composite":null,"value":{"Place":{"local":15,"projection":[]}},"argument_index":null},{"name":"ptr","source_info":{"span":39,"scope":5},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"index","source_info":{"span":40,"scope":5},"composite":null,"value":{"Place":{"local":7,"projection":[]}},"argument_index":2},{"name":"ptr","source_info":{"span":33,"scope":6},"composite":null,"value":{"Place":{"local":16,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":41}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start17h2f5945be8e646c85E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":2,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":43},{"kind":{"StorageLive":6},"span":44},{"kind":{"StorageLive":8},"span":45},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[3,[{"Type":12},{"Type":13},{"Type":14},{"Type":15}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":45},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":44},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},16]}]},"span":44}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":42,"user_ty":null,"const_":{"kind":"ZeroSized","ty":11,"id":2}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[{"kind":{"StorageDead":6},"span":47},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,17]}]}}}]},"span":48},{"kind":{"StorageDead":8},"span":49},{"kind":{"StorageDead":5},"span":49}],"terminator":{"kind":"Return","span":46}}],"locals":[{"ty":17,"span":50,"mutability":"Mut"},{"ty":18,"span":51,"mutability":"Not"},{"ty":17,"span":52,"mutability":"Not"},{"ty":19,"span":53,"mutability":"Not"},{"ty":20,"span":54,"mutability":"Not"},{"ty":21,"span":43,"mutability":"Mut"},{"ty":16,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"},{"ty":23,"span":45,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":51,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":52,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":53,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":54,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":48,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":55}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h9f86ded30f3cb331E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":3,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":58},{"kind":{"StorageLive":3},"span":57},{"kind":{"StorageLive":4},"span":59},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,18]}]}}}]},"span":59}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":56,"user_ty":null,"const_":{"kind":"ZeroSized","ty":24,"id":3}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":57}},{"statements":[{"kind":{"StorageDead":4},"span":61}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":60,"user_ty":null,"const_":{"kind":"ZeroSized","ty":25,"id":4}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":58}},{"statements":[{"kind":{"StorageDead":3},"span":63},{"kind":{"StorageLive":5},"span":64},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,26]}]}]}]},"span":64},{"kind":{"StorageLive":6},"span":65},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,26]},{"Field":[0,20]}]}}}]},"span":65},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},27]}]},"span":66},{"kind":{"StorageDead":6},"span":67},{"kind":{"StorageDead":5},"span":68},{"kind":{"StorageDead":2},"span":69}],"terminator":{"kind":"Return","span":62}}],"locals":[{"ty":27,"span":70,"mutability":"Mut"},{"ty":22,"span":45,"mutability":"Mut"},{"ty":28,"span":58,"mutability":"Mut"},{"ty":12,"span":57,"mutability":"Mut"},{"ty":18,"span":59,"mutability":"Mut"},{"ty":29,"span":64,"mutability":"Mut"},{"ty":20,"span":65,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":51,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,18]}]}},"argument_index":null},{"name":"self","source_info":{"span":71,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":72,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":45}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h047bb628ebce27a9E","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":73,"user_ty":null,"const_":{"kind":"ZeroSized","ty":30,"id":5}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":74,"user_ty":null,"const_":{"kind":"ZeroSized","ty":12,"id":6}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":75}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":76,"user_ty":null,"const_":{"kind":"ZeroSized","ty":31,"id":7}}},"args":[{"Constant":{"span":74,"user_ty":null,"const_":{"kind":"ZeroSized","ty":12,"id":6}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":77}},{"statements":[],"terminator":{"kind":"Return","span":78}}],"locals":[{"ty":12,"span":79,"mutability":"Mut"},{"ty":18,"span":80,"mutability":"Not"},{"ty":12,"span":81,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":80,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":82,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":83,"scope":2},"composite":null,"value":{"Const":{"span":74,"user_ty":null,"const_":{"kind":"ZeroSized","ty":12,"id":6}}},"argument_index":1}],"spread_arg":null,"span":84}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h111abf1333e045f0E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":5,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":85,"user_ty":null,"const_":{"kind":"ZeroSized","ty":32,"id":8}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":85}},{"statements":[],"terminator":{"kind":"Return","span":85}}],"locals":[{"ty":27,"span":85,"mutability":"Mut"},{"ty":33,"span":85,"mutability":"Not"},{"ty":12,"span":85,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":85}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h68dc1ae5b3dacc3fE","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":5,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":85}},{"statements":[],"terminator":{"kind":"Return","span":85}}],"locals":[{"ty":12,"span":85,"mutability":"Mut"},{"ty":18,"span":85,"mutability":"Not"},{"ty":12,"span":85,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":85}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17hedee77485ecfbed1E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":85}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":85,"user_ty":null,"const_":{"kind":"ZeroSized","ty":34,"id":9}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":85}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":85}},{"statements":[],"terminator":{"kind":"Return","span":85}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":85}},{"statements":[],"terminator":{"kind":"Resume","span":85}}],"locals":[{"ty":27,"span":85,"mutability":"Mut"},{"ty":23,"span":85,"mutability":"Not"},{"ty":12,"span":85,"mutability":"Not"},{"ty":35,"span":85,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":85}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h34e56151e092fcc4E","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":6,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":86}}],"locals":[{"ty":12,"span":86,"mutability":"Mut"},{"ty":33,"span":86,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":86}}},"details":null},{"symbol_name":"_ZN4core5array85_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u3b$$u20$N$u5d$$GT$5index17hfa0126024a6ede4fE","mono_item_kind":{"MonoItemFn":{"name":"std::array::> for [i32; 4]>::index","id":7,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":1,"projection":[]}},5]}]},"span":89}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":87,"user_ty":null,"const_":{"kind":"ZeroSized","ty":36,"id":10}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":88}},{"statements":[],"terminator":{"kind":"Return","span":90}}],"locals":[{"ty":5,"span":91,"mutability":"Mut"},{"ty":37,"span":92,"mutability":"Not"},{"ty":6,"span":93,"mutability":"Not"},{"ty":5,"span":89,"mutability":"Not"}],"arg_count":2,"var_debug_info":[{"name":"self","source_info":{"span":92,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"index","source_info":{"span":93,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2}],"spread_arg":null,"span":94}}},"details":null},{"symbol_name":"_ZN4core5array8equality92_$LT$impl$u20$core..cmp..PartialEq$LT$$u5b$U$u3b$$u20$N$u5d$$GT$$u20$for$u20$$u5b$T$u5d$$GT$2eq17h51798103dd348aafE","mono_item_kind":{"MonoItemFn":{"name":"std::array::equality:: for [i32]>::eq","id":8,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":3},"span":96},{"kind":{"StorageLive":5},"span":97},{"kind":{"StorageLive":9},"span":98},{"kind":{"StorageLive":10},"span":98},{"kind":{"StorageLive":6},"span":95},{"kind":{"StorageLive":7},"span":99},{"kind":{"Assign":[{"local":7,"projection":[]},{"UnaryOp":["PtrMetadata",{"Copy":{"local":1,"projection":[]}}]}]},"span":99},{"kind":{"Assign":[{"local":6,"projection":[]},{"BinaryOp":["Eq",{"Move":{"local":7,"projection":[]}},{"Constant":{"span":100,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":0,"id":11}}}]}]},"span":95}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":6,"projection":[]}},"targets":{"branches":[[0,3]],"otherwise":2}}},"span":95}},{"statements":[{"kind":{"StorageDead":3},"span":102}],"terminator":{"kind":"Return","span":101}},{"statements":[{"kind":{"StorageDead":7},"span":100},{"kind":{"StorageLive":8},"span":105},{"kind":{"Assign":[{"local":10,"projection":[]},{"AddressOf":["Not",{"local":1,"projection":["Deref"]}]}]},"span":106},{"kind":{"Assign":[{"local":8,"projection":[]},{"Cast":["PtrToPtr",{"Copy":{"local":10,"projection":[]}},39]}]},"span":107},{"kind":{"Assign":[{"local":9,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":["Deref"]}]}]},"span":108},{"kind":{"Assign":[{"local":5,"projection":[]},{"Aggregate":[{"Adt":[1,1,[{"Type":40}],null,null]},[{"Copy":{"local":9,"projection":[]}}]]}]},"span":109},{"kind":{"StorageDead":8},"span":110},{"kind":{"StorageDead":6},"span":111},{"kind":{"StorageDead":10},"span":98},{"kind":{"StorageDead":9},"span":98},{"kind":{"StorageLive":11},"span":112},{"kind":{"Assign":[{"local":11,"projection":[]},{"Use":{"Move":{"local":5,"projection":[{"Downcast":1},{"Field":[0,40]}]}}}]},"span":113},{"kind":{"Assign":[{"local":3,"projection":[]},{"Aggregate":[{"Adt":[9,0,[{"Type":40},{"Type":41}],null,null]},[{"Copy":{"local":11,"projection":[]}}]]}]},"span":114},{"kind":{"StorageDead":11},"span":112},{"kind":{"StorageDead":5},"span":115},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":3,"projection":[{"Downcast":0},{"Field":[0,40]}]}}}]},"span":116}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":103,"user_ty":null,"const_":{"kind":"ZeroSized","ty":38,"id":12}}},"args":[{"Move":{"local":4,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":104}},{"statements":[{"kind":{"StorageDead":7},"span":100},{"kind":{"Assign":[{"local":5,"projection":[]},{"Use":{"Constant":{"span":74,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":42,"id":13}}}}]},"span":118},{"kind":{"StorageDead":6},"span":111},{"kind":{"StorageDead":10},"span":98},{"kind":{"StorageDead":9},"span":98},{"kind":{"StorageLive":11},"span":112},{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Constant":{"span":74,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":43,"id":14}}}}]},"span":119},{"kind":{"StorageDead":11},"span":112},{"kind":{"StorageDead":5},"span":115},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":117,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":9,"id":15}}}}]},"span":117}],"terminator":{"kind":{"Goto":{"target":1}},"span":117}}],"locals":[{"ty":9,"span":120,"mutability":"Mut"},{"ty":5,"span":121,"mutability":"Not"},{"ty":40,"span":122,"mutability":"Not"},{"ty":43,"span":96,"mutability":"Not"},{"ty":40,"span":116,"mutability":"Not"},{"ty":42,"span":97,"mutability":"Mut"},{"ty":9,"span":95,"mutability":"Mut"},{"ty":0,"span":99,"mutability":"Mut"},{"ty":39,"span":105,"mutability":"Not"},{"ty":40,"span":123,"mutability":"Not"},{"ty":10,"span":124,"mutability":"Mut"},{"ty":40,"span":113,"mutability":"Not"}],"arg_count":2,"var_debug_info":[{"name":"self","source_info":{"span":121,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"other","source_info":{"span":122,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"b","source_info":{"span":96,"scope":1},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":null},{"name":"b","source_info":{"span":116,"scope":2},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":null},{"name":"self","source_info":{"span":125,"scope":3},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"slice","source_info":{"span":126,"scope":4},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":127,"scope":5},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"ptr","source_info":{"span":105,"scope":6},"composite":null,"value":{"Place":{"local":8,"projection":[]}},"argument_index":null},{"name":"me","source_info":{"span":123,"scope":7},"composite":null,"value":{"Place":{"local":8,"projection":[]}},"argument_index":null},{"name":"self","source_info":{"span":128,"scope":8},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":129,"scope":9},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1},{"name":"err","source_info":{"span":130,"scope":9},"composite":null,"value":{"Const":{"span":74,"user_ty":null,"const_":{"kind":"ZeroSized","ty":41,"id":16}}},"argument_index":2},{"name":"v","source_info":{"span":113,"scope":10},"composite":null,"value":{"Place":{"local":11,"projection":[]}},"argument_index":null},{"name":"self","source_info":{"span":131,"scope":11},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":1},{"name":"other","source_info":{"span":132,"scope":11},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2}],"spread_arg":null,"span":133}}},"details":null},{"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$2eq17ha12368e081ad081eE","mono_item_kind":{"MonoItemFn":{"name":"std::array::equality:: for &[i32]>::eq","id":10,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref"]}}}]},"span":135}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":134,"user_ty":null,"const_":{"kind":"ZeroSized","ty":44,"id":17}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":134}},{"statements":[],"terminator":{"kind":"Return","span":136}}],"locals":[{"ty":9,"span":137,"mutability":"Mut"},{"ty":45,"span":138,"mutability":"Not"},{"ty":40,"span":139,"mutability":"Not"},{"ty":5,"span":138,"mutability":"Mut"}],"arg_count":2,"var_debug_info":[{"name":"self","source_info":{"span":138,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"other","source_info":{"span":139,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2}],"spread_arg":null,"span":140}}},"details":null},{"symbol_name":"_ZN4core5slice5index74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17he6b4b6468b73e82bE","mono_item_kind":{"MonoItemFn":{"name":"core::slice::index::> for [i32]>::index","id":11,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":141,"user_ty":null,"const_":{"kind":"ZeroSized","ty":46,"id":18}}},"args":[{"Move":{"local":2,"projection":[]}},{"Move":{"local":1,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":142}},{"statements":[],"terminator":{"kind":"Return","span":143}}],"locals":[{"ty":5,"span":144,"mutability":"Mut"},{"ty":5,"span":145,"mutability":"Not"},{"ty":6,"span":146,"mutability":"Not"}],"arg_count":2,"var_debug_info":[{"name":"self","source_info":{"span":145,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"index","source_info":{"span":146,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2}],"spread_arg":null,"span":147}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h8b0d5947688de0e1E","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":12,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":149,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":28,"id":19}}}}]},"span":149}],"terminator":{"kind":"Return","span":148}}],"locals":[{"ty":28,"span":150,"mutability":"Mut"},{"ty":12,"span":151,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":151,"scope":0},"composite":null,"value":{"Const":{"span":74,"user_ty":null,"const_":{"kind":"ZeroSized","ty":12,"id":6}}},"argument_index":1}],"spread_arg":null,"span":152}}},"details":null},{"symbol_name":"_ZN5slice4main17h59a7158e62ef4fe0E","mono_item_kind":{"MonoItemFn":{"name":"main","id":14,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":1,"projection":[]},{"Aggregate":[{"Array":27},[{"Constant":{"span":163,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":27,"id":22}}},{"Constant":{"span":164,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[2,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":27,"id":23}}},{"Constant":{"span":165,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[3,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":27,"id":24}}},{"Constant":{"span":166,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[4,0,0,0],"provenance":{"ptrs":[]},"align":4,"mutability":"Mut"}},"ty":27,"id":25}}}]]}]},"span":167},{"kind":{"Assign":[{"local":4,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":1,"projection":[]}]}]},"span":168},{"kind":{"Assign":[{"local":5,"projection":[]},{"Aggregate":[{"Adt":[15,0,[{"Type":0}],null,null]},[{"Constant":{"span":169,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":0,"id":26}}},{"Constant":{"span":170,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[3,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":0,"id":27}}}]]}]},"span":171}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":162,"user_ty":null,"const_":{"kind":"ZeroSized","ty":48,"id":21}}},"args":[{"Move":{"local":4,"projection":[]}},{"Move":{"local":5,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":162}},{"statements":[{"kind":{"Assign":[{"local":2,"projection":[]},{"Use":{"Copy":{"local":3,"projection":[]}}}]},"span":173},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[]}]}]},"span":174},{"kind":{"Assign":[{"local":8,"projection":[]},{"Use":{"Constant":{"span":175,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":40,"id":29}}}}]},"span":175}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":172,"user_ty":null,"const_":{"kind":"ZeroSized","ty":49,"id":28}}},"args":[{"Move":{"local":7,"projection":[]}},{"Move":{"local":8,"projection":[]}}],"destination":{"local":6,"projection":[]},"target":2,"unwind":"Continue"}},"span":172}},{"statements":[],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":6,"projection":[]}},"targets":{"branches":[[0,4]],"otherwise":3}}},"span":172}},{"statements":[],"terminator":{"kind":"Return","span":176}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":177,"user_ty":null,"const_":{"kind":"ZeroSized","ty":50,"id":30}}},"args":[{"Constant":{"span":74,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,1]]},"align":8,"mutability":"Mut"}},"ty":51,"id":31}}}],"destination":{"local":9,"projection":[]},"target":null,"unwind":"Continue"}},"span":177}}],"locals":[{"ty":12,"span":178,"mutability":"Mut"},{"ty":52,"span":179,"mutability":"Not"},{"ty":5,"span":180,"mutability":"Not"},{"ty":5,"span":162,"mutability":"Not"},{"ty":37,"span":168,"mutability":"Mut"},{"ty":6,"span":171,"mutability":"Mut"},{"ty":9,"span":172,"mutability":"Mut"},{"ty":45,"span":174,"mutability":"Mut"},{"ty":40,"span":175,"mutability":"Mut"},{"ty":7,"span":177,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"a","source_info":{"span":179,"scope":1},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":null},{"name":"b","source_info":{"span":180,"scope":2},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":181}}},"details":null},{"symbol_name":"_ZN69_$LT$T$u20$as$u20$core..array..equality..SpecArrayEq$LT$U$C$_$GT$$GT$7spec_eq17ha98d81a4a2a99025E","mono_item_kind":{"MonoItemFn":{"name":">::spec_eq","id":13,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":3},"span":155},{"kind":{"Assign":[{"local":3,"projection":[]},{"Cast":["Transmute",{"Copy":{"local":2,"projection":[]}},40]}]},"span":155}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":153,"user_ty":null,"const_":{"kind":"ZeroSized","ty":47,"id":20}}},"args":[{"Move":{"local":1,"projection":[]}},{"Move":{"local":3,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Unreachable"}},"span":154}},{"statements":[{"kind":{"StorageDead":3},"span":157}],"terminator":{"kind":"Return","span":156}}],"locals":[{"ty":9,"span":158,"mutability":"Mut"},{"ty":40,"span":159,"mutability":"Not"},{"ty":40,"span":160,"mutability":"Not"},{"ty":40,"span":155,"mutability":"Mut"}],"arg_count":2,"var_debug_info":[{"name":"a","source_info":{"span":159,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"b","source_info":{"span":160,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2}],"spread_arg":null,"span":161}}},"details":null}],"types":[[0,{"PrimitiveType":{"Uint":"Usize"}}],[2,{"PtrType":{"pointee_type":27,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[3,{"ArrayType":{"elem_type":27,"size":null,"layout":{"fields":{"Array":{"stride":{"num_bits":32},"count":0}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":false}},"abi_align":4,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":3,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"StructType":{"name":"std::ops::Range","adt_def":15,"fields":[0,0],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[7,"VoidType"],[8,{"EnumType":{"name":"std::option::Option","adt_def":1,"discriminants":[0,1],"fields":[[],[0]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Multiple":{"tag":{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":1}}},"tag_encoding":"Direct","tag_field":0,"variants":[{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":64}},{"fields":{"Arbitrary":{"offsets":[{"num_bits":64}]}},"variants":{"Single":{"index":1}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":1}}},{"Union":{"value":{"Int":{"length":"I64","signed":false}}}}]},"abi_align":8,"size":{"num_bits":128}}]}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":1}}},{"Union":{"value":{"Int":{"length":"I64","signed":false}}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[9,{"PrimitiveType":"Bool"}],[10,{"PtrType":{"pointee_type":3,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[12,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[16,{"RefType":{"pointee_type":58,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[17,{"PrimitiveType":{"Int":"Isize"}}],[19,{"PtrType":{"pointee_type":59,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[20,{"PrimitiveType":{"Uint":"U8"}}],[21,{"EnumType":{"name":"std::result::Result","adt_def":9,"discriminants":[0,1],"fields":[[17],[7]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"RefType":{"pointee_type":23,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[26,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":30,"fields":[20],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[27,{"PrimitiveType":{"Int":"I32"}}],[28,{"StructType":{"name":"std::process::ExitCode","adt_def":28,"fields":[26],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[29,{"RefType":{"pointee_type":26,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[33,{"PtrType":{"pointee_type":23,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[35,{"RefType":{"pointee_type":23,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[37,{"RefType":{"pointee_type":52,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[39,{"PtrType":{"pointee_type":57,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[40,{"RefType":{"pointee_type":57,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[41,{"StructType":{"name":"std::array::TryFromSliceError","adt_def":44,"fields":[12],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[42,{"EnumType":{"name":"std::option::Option<&[i32; 2]>","adt_def":1,"discriminants":[0,1],"fields":[[],[40]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Multiple":{"tag":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":0}}},"tag_encoding":{"Niche":{"untagged_variant":1,"niche_variants":{"start":0,"end":0},"niche_start":0}},"tag_field":0,"variants":[{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}},{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":1}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}]}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":0}}}},"abi_align":8,"size":{"num_bits":64}}}}],[43,{"EnumType":{"name":"std::result::Result<&[i32; 2], std::array::TryFromSliceError>","adt_def":9,"discriminants":[0,1],"fields":[[40],[41]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Multiple":{"tag":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":0}}},"tag_encoding":{"Niche":{"untagged_variant":0,"niche_variants":{"start":1,"end":1},"niche_start":0}},"tag_field":0,"variants":[{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}},{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":1}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}]}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":0}}}},"abi_align":8,"size":{"num_bits":64}}}}],[45,{"RefType":{"pointee_type":5,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[51,{"RefType":{"pointee_type":56,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[52,{"ArrayType":{"elem_type":27,"size":{"kind":{"Value":[0,{"bytes":[4,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}]},"id":0},"layout":{"fields":{"Array":{"stride":{"num_bits":32},"count":4}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":4,"size":{"num_bits":128}}}}],[53,{"RefType":{"pointee_type":54,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[54,{"StructType":{"name":"std::panic::Location<'_>","adt_def":17,"fields":[51,55,55],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[55,{"PrimitiveType":{"Uint":"U32"}}],[56,{"PrimitiveType":"Str"}],[57,{"ArrayType":{"elem_type":27,"size":{"kind":{"Value":[0,{"bytes":[2,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}]},"id":1},"layout":{"fields":{"Array":{"stride":{"num_bits":32},"count":2}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":4,"size":{"num_bits":64}}}}],[59,{"PtrType":{"pointee_type":20,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs",659,16,659,26]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",433,29,433,69]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",433,48,433,56]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",433,58,433,68]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",437,13,437,37]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",437,13,437,60]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",441,6,441,6]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",438,9,438,10]],[8,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",440,20,440,72]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",440,45,440,50]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",107,24,107,50]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",88,15,88,30]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",90,14,90,51]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",108,5,108,51]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",440,71,440,72]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",440,18,440,72]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",441,5,441,6]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",434,13,434,35]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",434,13,434,57]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs",664,13,664,14]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",435,10,435,11]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",436,12,436,34]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs",663,22,663,69]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs",663,31,663,67]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs",663,17,663,70]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs",663,69,663,70]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",433,18,433,25]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",436,23,436,34]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",431,14,431,18]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",431,20,431,25]],[32,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",107,9,107,12]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",88,9,88,12]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs",653,34,653,38]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs",653,40,653,43]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",102,5,102,8]],[37,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",103,5,103,11]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",104,5,104,8]],[39,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",87,34,87,37]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",87,51,87,56]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",431,5,441,6]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[47,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[51,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[52,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[53,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[54,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[55,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[56,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[57,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[58,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[59,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[60,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[61,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[62,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[63,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[64,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[65,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[66,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[67,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[68,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[69,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[71,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[72,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[73,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[74,["no-location",0,0,0,0]],[75,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[76,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[77,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[78,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[80,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[82,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[83,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[84,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[85,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[86,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[87,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",365,9,365,21]],[88,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",365,9,365,42]],[89,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",365,22,365,34]],[90,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",366,6,366,6]],[92,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",364,14,364,19]],[93,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",364,21,364,26]],[94,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",364,5,366,6]],[95,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",866,12,866,27]],[96,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",48,13,48,14]],[97,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",285,9,285,25]],[98,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",285,15,285,25]],[99,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",866,12,866,22]],[100,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",866,26,866,27]],[101,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",53,6,53,6]],[102,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",53,5,53,6]],[103,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",10,9,10,29]],[104,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",10,9,10,42]],[105,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",867,17,867,20]],[106,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",742,9,742,13]],[107,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",867,23,867,53]],[108,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",870,31,870,36]],[109,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",871,13,871,21]],[110,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",872,9,872,10]],[111,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",874,9,874,10]],[112,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",285,26,285,54]],[113,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",1248,18,1248,19]],[114,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",1248,24,1248,29]],[115,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",285,53,285,54]],[116,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",50,16,50,17]],[117,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",51,23,51,28]],[118,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",873,13,873,17]],[119,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",1249,21,1249,29]],[121,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",47,11,47,16]],[122,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",47,18,47,23]],[123,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",870,17,870,19]],[125,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/convert/mod.rs",797,17,797,21]],[126,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/mod.rs",284,17,284,22]],[127,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",865,43,865,48]],[128,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/mod.rs",741,25,741,30]],[129,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",1246,21,1246,25]],[130,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs",1246,27,1246,30]],[131,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",9,11,9,16]],[132,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",9,18,9,23]],[133,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",47,5,53,6]],[134,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",86,9,86,25]],[135,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",86,9,86,15]],[136,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",87,6,87,6]],[138,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",85,11,85,16]],[139,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",85,18,85,23]],[140,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",85,5,87,6]],[141,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",16,15,16,20]],[142,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",16,9,16,26]],[143,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",17,6,17,6]],[145,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",15,14,15,19]],[146,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",15,21,15,26]],[147,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/index.rs",15,5,17,6]],[148,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[149,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[151,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[152,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[153,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",150,18,150,43]],[154,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",150,18,150,72]],[155,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",150,47,150,71]],[156,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",151,6,151,6]],[157,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",150,71,150,72]],[159,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",146,16,146,17]],[160,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",146,28,146,29]],[161,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/array/equality.rs",146,5,151,6]],[162,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",4,15,4,21]],[163,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",2,14,2,15]],[164,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",2,17,2,18]],[165,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",2,20,2,21]],[166,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",2,23,2,24]],[167,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",2,13,2,25]],[168,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",4,14,4,15]],[169,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",4,16,4,17]],[170,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",4,19,4,20]],[171,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",4,16,4,20]],[172,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",6,13,6,24]],[173,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",4,13,4,21]],[174,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",6,13,6,14]],[175,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",6,18,6,24]],[176,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",7,2,7,2]],[177,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",6,5,6,25]],[179,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",2,9,2,10]],[180,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",4,9,4,10]],[181,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/slice.rs",1,1,7,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file diff --git a/tests/integration/programs/sum-to-n.smir.json b/tests/integration/programs/sum-to-n.smir.json new file mode 100644 index 0000000..28ffc73 --- /dev/null +++ b/tests/integration/programs/sum-to-n.smir.json @@ -0,0 +1 @@ +{"name":"sum_to_n","crate_id":5248140639660159557,"allocs":[[1,{"Memory":{"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],"provenance":{"ptrs":[]},"align":1,"mutability":"Not"}}]],"functions":[[0,{"NormalSym":"_ZN3std2rt19lang_start_internal17h035df9ff6960926aE"}],[13,{"NormalSym":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h8d98f9668601081bE"}],[14,{"NormalSym":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h43068d986f51302eE"}],[19,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h717e9e6c028a2239E"}],[20,{"IntrinsicSym":"black_box"}],[21,{"NormalSym":"_ZN4core3ops8function6FnOnce9call_once17h0b4a9d25b84e8979E"}],[23,{"NormalSym":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hfd89a408b4351e09E"}],[28,{"NormalSym":"_ZN8sum_to_n8sum_to_n17ha8037c8f5b9f1867E"}],[29,{"NormalSym":"_ZN4core9panicking5panic17h37379bf3ce79a0d7E"}],[32,{"NormalSym":"_ZN8sum_to_n13test_sum_to_n17h9fac6d1224b2f624E"}],[33,{"NoOpSym":""}]],"uneval_consts":[],"items":[{"symbol_name":"_ZN3std2rt10lang_start17h4d6e4c5b9e09b4f0E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>","id":0,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":5},"span":1},{"kind":{"StorageLive":6},"span":2},{"kind":{"StorageLive":8},"span":3},{"kind":{"Assign":[{"local":8,"projection":[]},{"Aggregate":[{"Closure":[1,[{"Type":1},{"Type":2},{"Type":3},{"Type":4}]]},[{"Copy":{"local":1,"projection":[]}}]]}]},"span":3},{"kind":{"Assign":[{"local":7,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":8,"projection":[]}]}]},"span":2},{"kind":{"Assign":[{"local":6,"projection":[]},{"Cast":[{"PointerCoercion":"Unsize"},{"Copy":{"local":7,"projection":[]}},5]}]},"span":2}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":0,"user_ty":null,"const_":{"kind":"ZeroSized","ty":0,"id":0}}},"args":[{"Move":{"local":6,"projection":[]}},{"Move":{"local":2,"projection":[]}},{"Move":{"local":3,"projection":[]}},{"Move":{"local":4,"projection":[]}}],"destination":{"local":5,"projection":[]},"target":1,"unwind":"Continue"}},"span":1}},{"statements":[{"kind":{"StorageDead":6},"span":5},{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":5,"projection":[{"Downcast":0},{"Field":[0,6]}]}}}]},"span":6},{"kind":{"StorageDead":8},"span":7},{"kind":{"StorageDead":5},"span":7}],"terminator":{"kind":"Return","span":4}}],"locals":[{"ty":6,"span":8,"mutability":"Mut"},{"ty":7,"span":9,"mutability":"Not"},{"ty":6,"span":10,"mutability":"Not"},{"ty":8,"span":11,"mutability":"Not"},{"ty":9,"span":12,"mutability":"Not"},{"ty":10,"span":1,"mutability":"Mut"},{"ty":5,"span":2,"mutability":"Mut"},{"ty":11,"span":2,"mutability":"Not"},{"ty":12,"span":3,"mutability":"Not"}],"arg_count":4,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"argc","source_info":{"span":10,"scope":0},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":2},{"name":"argv","source_info":{"span":11,"scope":0},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":3},{"name":"sigpipe","source_info":{"span":12,"scope":0},"composite":null,"value":{"Place":{"local":4,"projection":[]}},"argument_index":4},{"name":"v","source_info":{"span":6,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":13}}},"details":null},{"symbol_name":"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hfd89a408b4351e09E","mono_item_kind":{"MonoItemFn":{"name":"std::rt::lang_start::<()>::{closure#0}","id":1,"body":{"blocks":[{"statements":[{"kind":{"StorageLive":2},"span":16},{"kind":{"StorageLive":3},"span":15},{"kind":{"StorageLive":4},"span":17},{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Copy":{"local":1,"projection":["Deref",{"Field":[0,7]}]}}}]},"span":17}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":14,"user_ty":null,"const_":{"kind":"ZeroSized","ty":13,"id":1}}},"args":[{"Move":{"local":4,"projection":[]}}],"destination":{"local":3,"projection":[]},"target":1,"unwind":"Continue"}},"span":15}},{"statements":[{"kind":{"StorageDead":4},"span":19}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":18,"user_ty":null,"const_":{"kind":"ZeroSized","ty":14,"id":2}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Continue"}},"span":16}},{"statements":[{"kind":{"StorageDead":3},"span":21},{"kind":{"StorageLive":5},"span":22},{"kind":{"Assign":[{"local":5,"projection":[]},{"Ref":[{"kind":"ReErased"},"Shared",{"local":2,"projection":[{"Field":[0,15]}]}]}]},"span":22},{"kind":{"StorageLive":6},"span":23},{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[{"Field":[0,15]},{"Field":[0,9]}]}}}]},"span":23},{"kind":{"Assign":[{"local":0,"projection":[]},{"Cast":["IntToInt",{"Move":{"local":6,"projection":[]}},16]}]},"span":24},{"kind":{"StorageDead":6},"span":25},{"kind":{"StorageDead":5},"span":26},{"kind":{"StorageDead":2},"span":27}],"terminator":{"kind":"Return","span":20}}],"locals":[{"ty":16,"span":28,"mutability":"Mut"},{"ty":11,"span":3,"mutability":"Mut"},{"ty":17,"span":16,"mutability":"Mut"},{"ty":1,"span":15,"mutability":"Mut"},{"ty":7,"span":17,"mutability":"Mut"},{"ty":18,"span":22,"mutability":"Mut"},{"ty":9,"span":23,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"main","source_info":{"span":9,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":["Deref",{"Field":[0,7]}]}},"argument_index":null},{"name":"self","source_info":{"span":29,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":1},{"name":"self","source_info":{"span":30,"scope":2},"composite":null,"value":{"Place":{"local":5,"projection":[]}},"argument_index":1}],"spread_arg":null,"span":3}}},"details":null},{"symbol_name":"_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h8d98f9668601081bE","mono_item_kind":{"MonoItemFn":{"name":"std::sys::backtrace::__rust_begin_short_backtrace::","id":2,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":31,"user_ty":null,"const_":{"kind":"ZeroSized","ty":19,"id":3}}},"args":[{"Move":{"local":1,"projection":[]}},{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":33}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":34,"user_ty":null,"const_":{"kind":"ZeroSized","ty":20,"id":5}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}}],"destination":{"local":2,"projection":[]},"target":2,"unwind":"Unreachable"}},"span":35}},{"statements":[],"terminator":{"kind":"Return","span":36}}],"locals":[{"ty":1,"span":37,"mutability":"Mut"},{"ty":7,"span":38,"mutability":"Not"},{"ty":1,"span":39,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"f","source_info":{"span":38,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"result","source_info":{"span":40,"scope":1},"composite":null,"value":{"Place":{"local":0,"projection":[]}},"argument_index":null},{"name":"dummy","source_info":{"span":41,"scope":2},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":42}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h82ee0f0f041cb06cE","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":21,"id":6}}},"args":[{"Move":{"local":1,"projection":["Deref"]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":22,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h0b4a9d25b84e8979E","mono_item_kind":{"MonoItemFn":{"name":"<{closure@std::rt::lang_start<()>::{closure#0}} as std::ops::FnOnce<()>>::call_once","id":3,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Ref":[{"kind":"ReErased"},{"Mut":{"kind":"Default"}},{"local":1,"projection":[]}]}]},"span":43}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":43,"user_ty":null,"const_":{"kind":"ZeroSized","ty":23,"id":7}}},"args":[{"Move":{"local":3,"projection":[]}},{"Move":{"local":2,"projection":[]}}],"destination":{"local":0,"projection":[]},"target":1,"unwind":{"Cleanup":3}}},"span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":2,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}},{"statements":[],"terminator":{"kind":{"Drop":{"place":{"local":1,"projection":[]},"target":4,"unwind":"Terminate"}},"span":43}},{"statements":[],"terminator":{"kind":"Resume","span":43}}],"locals":[{"ty":16,"span":43,"mutability":"Mut"},{"ty":12,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"},{"ty":24,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ops8function6FnOnce9call_once17h717e9e6c028a2239E","mono_item_kind":{"MonoItemFn":{"name":">::call_once","id":3,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Move":{"local":1,"projection":[]}},"args":[],"destination":{"local":0,"projection":[]},"target":1,"unwind":"Continue"}},"span":43}},{"statements":[],"terminator":{"kind":"Return","span":43}}],"locals":[{"ty":1,"span":43,"mutability":"Mut"},{"ty":7,"span":43,"mutability":"Not"},{"ty":1,"span":43,"mutability":"Not"}],"arg_count":2,"var_debug_info":[],"spread_arg":2,"span":43}}},"details":null},{"symbol_name":"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h64c24036e94573ffE","mono_item_kind":{"MonoItemFn":{"name":"std::ptr::drop_in_place::<{closure@std::rt::lang_start<()>::{closure#0}}>","id":4,"body":{"blocks":[{"statements":[],"terminator":{"kind":"Return","span":44}}],"locals":[{"ty":1,"span":44,"mutability":"Mut"},{"ty":22,"span":44,"mutability":"Not"}],"arg_count":1,"var_debug_info":[],"spread_arg":null,"span":44}}},"details":null},{"symbol_name":"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h43068d986f51302eE","mono_item_kind":{"MonoItemFn":{"name":"<() as std::process::Termination>::report","id":5,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Constant":{"span":46,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0],"provenance":{"ptrs":[]},"align":1,"mutability":"Mut"}},"ty":17,"id":8}}}}]},"span":46}],"terminator":{"kind":"Return","span":45}}],"locals":[{"ty":17,"span":47,"mutability":"Mut"},{"ty":1,"span":48,"mutability":"Not"}],"arg_count":1,"var_debug_info":[{"name":"self","source_info":{"span":48,"scope":0},"composite":null,"value":{"Const":{"span":32,"user_ty":null,"const_":{"kind":"ZeroSized","ty":1,"id":4}}},"argument_index":1}],"spread_arg":null,"span":49}}},"details":null},{"symbol_name":"_ZN8sum_to_n13test_sum_to_n17h9fac6d1224b2f624E","mono_item_kind":{"MonoItemFn":{"name":"test_sum_to_n","id":7,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Constant":{"span":71,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[10,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":25,"id":12}}}}]},"span":72}],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":69,"user_ty":null,"const_":{"kind":"ZeroSized","ty":28,"id":11}}},"args":[{"Move":{"local":3,"projection":[]}}],"destination":{"local":2,"projection":[]},"target":1,"unwind":"Continue"}},"span":70}},{"statements":[{"kind":{"Assign":[{"local":4,"projection":[]},{"Use":{"Constant":{"span":74,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[55,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":25,"id":13}}}}]},"span":75},{"kind":{"Assign":[{"local":1,"projection":[]},{"BinaryOp":["Eq",{"Move":{"local":2,"projection":[]}},{"Move":{"local":4,"projection":[]}}]}]},"span":76}],"terminator":{"kind":{"SwitchInt":{"discr":{"Copy":{"local":1,"projection":[]}},"targets":{"branches":[[0,2]],"otherwise":3}}},"span":73}},{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":77,"user_ty":null,"const_":{"kind":"ZeroSized","ty":29,"id":14}}},"args":[{"Constant":{"span":32,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0],"provenance":{"ptrs":[[0,0]]},"align":8,"mutability":"Mut"}},"ty":30,"id":15}}}],"destination":{"local":5,"projection":[]},"target":null,"unwind":"Continue"}},"span":77}},{"statements":[],"terminator":{"kind":"Return","span":78}}],"locals":[{"ty":1,"span":79,"mutability":"Mut"},{"ty":26,"span":80,"mutability":"Not"},{"ty":25,"span":70,"mutability":"Mut"},{"ty":25,"span":72,"mutability":"Mut"},{"ty":25,"span":75,"mutability":"Mut"},{"ty":31,"span":77,"mutability":"Mut"}],"arg_count":0,"var_debug_info":[{"name":"n","source_info":{"span":81,"scope":1},"composite":null,"value":{"Const":{"span":71,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[10,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":25,"id":12}}},"argument_index":null},{"name":"golden","source_info":{"span":82,"scope":2},"composite":null,"value":{"Const":{"span":74,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[55,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":25,"id":13}}},"argument_index":null},{"name":"sucess","source_info":{"span":80,"scope":3},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":83}}},"details":null},{"symbol_name":"_ZN8sum_to_n4main17hc4893a5b9e8ee034E","mono_item_kind":{"MonoItemFn":{"name":"main","id":8,"body":{"blocks":[{"statements":[],"terminator":{"kind":{"Call":{"func":{"Constant":{"span":84,"user_ty":null,"const_":{"kind":"ZeroSized","ty":32,"id":16}}},"args":[],"destination":{"local":1,"projection":[]},"target":1,"unwind":"Continue"}},"span":85}},{"statements":[],"terminator":{"kind":"Return","span":86}}],"locals":[{"ty":1,"span":87,"mutability":"Mut"},{"ty":1,"span":85,"mutability":"Not"}],"arg_count":0,"var_debug_info":[],"spread_arg":null,"span":88}}},"details":null},{"symbol_name":"_ZN8sum_to_n8sum_to_n17ha8037c8f5b9f1867E","mono_item_kind":{"MonoItemFn":{"name":"sum_to_n","id":6,"body":{"blocks":[{"statements":[{"kind":{"Assign":[{"local":2,"projection":[]},{"Use":{"Constant":{"span":51,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":25,"id":9}}}}]},"span":51},{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Copy":{"local":1,"projection":[]}}}]},"span":52}],"terminator":{"kind":{"Goto":{"target":1}},"span":50}},{"statements":[{"kind":{"Assign":[{"local":5,"projection":[]},{"Use":{"Copy":{"local":3,"projection":[]}}}]},"span":54},{"kind":{"Assign":[{"local":4,"projection":[]},{"BinaryOp":["Gt",{"Move":{"local":5,"projection":[]}},{"Constant":{"span":55,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[0,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":25,"id":9}}}]}]},"span":53}],"terminator":{"kind":{"SwitchInt":{"discr":{"Move":{"local":4,"projection":[]}},"targets":{"branches":[[0,5]],"otherwise":2}}},"span":53}},{"statements":[{"kind":{"Assign":[{"local":6,"projection":[]},{"Use":{"Copy":{"local":3,"projection":[]}}}]},"span":57},{"kind":{"Assign":[{"local":7,"projection":[]},{"CheckedBinaryOp":["Add",{"Copy":{"local":2,"projection":[]}},{"Copy":{"local":6,"projection":[]}}]}]},"span":56}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":7,"projection":[{"Field":[1,26]}]}},"expected":false,"msg":{"Overflow":["Add",{"Copy":{"local":2,"projection":[]}},{"Move":{"local":6,"projection":[]}}]},"target":3,"unwind":"Continue"}},"span":56}},{"statements":[{"kind":{"Assign":[{"local":2,"projection":[]},{"Use":{"Move":{"local":7,"projection":[{"Field":[0,25]}]}}}]},"span":56},{"kind":{"Assign":[{"local":8,"projection":[]},{"Use":{"Copy":{"local":3,"projection":[]}}}]},"span":60},{"kind":{"Assign":[{"local":9,"projection":[]},{"CheckedBinaryOp":["Sub",{"Copy":{"local":8,"projection":[]}},{"Constant":{"span":58,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":25,"id":10}}}]}]},"span":59}],"terminator":{"kind":{"Assert":{"cond":{"Move":{"local":9,"projection":[{"Field":[1,26]}]}},"expected":false,"msg":{"Overflow":["Sub",{"Move":{"local":8,"projection":[]}},{"Constant":{"span":58,"user_ty":null,"const_":{"kind":{"Allocated":{"bytes":[1,0,0,0,0,0,0,0],"provenance":{"ptrs":[]},"align":8,"mutability":"Mut"}},"ty":25,"id":10}}}]},"target":4,"unwind":"Continue"}},"span":59}},{"statements":[{"kind":{"Assign":[{"local":3,"projection":[]},{"Use":{"Move":{"local":9,"projection":[{"Field":[0,25]}]}}}]},"span":61}],"terminator":{"kind":{"Goto":{"target":1}},"span":50}},{"statements":[{"kind":{"Assign":[{"local":0,"projection":[]},{"Use":{"Copy":{"local":2,"projection":[]}}}]},"span":63}],"terminator":{"kind":"Return","span":62}}],"locals":[{"ty":25,"span":64,"mutability":"Mut"},{"ty":25,"span":65,"mutability":"Not"},{"ty":25,"span":66,"mutability":"Mut"},{"ty":25,"span":67,"mutability":"Mut"},{"ty":26,"span":53,"mutability":"Mut"},{"ty":25,"span":54,"mutability":"Mut"},{"ty":25,"span":57,"mutability":"Mut"},{"ty":27,"span":56,"mutability":"Mut"},{"ty":25,"span":60,"mutability":"Mut"},{"ty":27,"span":59,"mutability":"Mut"}],"arg_count":1,"var_debug_info":[{"name":"n","source_info":{"span":65,"scope":0},"composite":null,"value":{"Place":{"local":1,"projection":[]}},"argument_index":1},{"name":"sum","source_info":{"span":66,"scope":1},"composite":null,"value":{"Place":{"local":2,"projection":[]}},"argument_index":null},{"name":"counter","source_info":{"span":67,"scope":2},"composite":null,"value":{"Place":{"local":3,"projection":[]}},"argument_index":null}],"spread_arg":null,"span":68}}},"details":null}],"types":[[1,{"TupleType":{"types":[],"layout":{"fields":{"Arbitrary":{"offsets":[]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":1,"size":{"num_bits":0}}}}],[5,{"RefType":{"pointee_type":38,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[6,{"PrimitiveType":{"Int":"Isize"}}],[8,{"PtrType":{"pointee_type":39,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[9,{"PrimitiveType":{"Uint":"U8"}}],[10,{"EnumType":{"name":"std::result::Result","adt_def":26,"discriminants":[0,1],"fields":[[6],[31]],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I64","signed":true}},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[11,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[15,{"StructType":{"name":"std::sys::pal::unix::process::process_common::ExitCode","adt_def":19,"fields":[9],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[16,{"PrimitiveType":{"Int":"I32"}}],[17,{"StructType":{"name":"std::process::ExitCode","adt_def":17,"fields":[15],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0}]}},"variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":255}}}},"abi_align":1,"size":{"num_bits":8}}}}],[18,{"RefType":{"pointee_type":15,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[22,{"PtrType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[24,{"RefType":{"pointee_type":12,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[25,{"PrimitiveType":{"Uint":"Usize"}}],[26,{"PrimitiveType":"Bool"}],[27,{"TupleType":{"types":[25,26],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I8","signed":false}},"valid_range":{"start":0,"end":1}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[30,{"RefType":{"pointee_type":35,"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":64}]}},"variants":{"Single":{"index":0}},"abi":{"ScalarPair":[{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}},{"Initialized":{"value":{"Int":{"length":"I64","signed":false}},"valid_range":{"start":0,"end":18446744073709551615}}}]},"abi_align":8,"size":{"num_bits":128}}}}],[31,"VoidType"],[34,{"RefType":{"pointee_type":36,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":1,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}],[35,{"PrimitiveType":"Str"}],[36,{"StructType":{"name":"std::panic::Location<'_>","adt_def":11,"fields":[30,37,37],"layout":{"fields":{"Arbitrary":{"offsets":[{"num_bits":0},{"num_bits":128},{"num_bits":160}]}},"variants":{"Single":{"index":0}},"abi":{"Aggregate":{"sized":true}},"abi_align":8,"size":{"num_bits":192}}}}],[37,{"PrimitiveType":{"Uint":"U32"}}],[39,{"PtrType":{"pointee_type":9,"layout":{"fields":"Primitive","variants":{"Single":{"index":0}},"abi":{"Scalar":{"Initialized":{"value":{"Pointer":0},"valid_range":{"start":0,"end":18446744073709551615}}}},"abi_align":8,"size":{"num_bits":64}}}}]],"spans":[[0,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,194,36]],[1,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,17,199,6]],[2,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,9,195,93]],[3,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,10,195,93]],[4,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",201,2,201,2]],[5,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,5,199,6]],[6,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",194,12,194,13]],[7,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",199,6,199,7]],[9,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",189,5,189,9]],[10,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",190,5,190,9]],[11,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",191,5,191,9]],[12,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",192,5,192,12]],[13,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",188,1,201,2]],[14,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,69]],[15,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,75]],[16,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,18,195,84]],[17,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,70,195,74]],[18,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,76,195,82]],[19,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,74,195,75]],[20,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,93,195,93]],[21,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,83,195,84]],[22,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,9,2053,15]],[23,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,15]],[24,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,9,636,22]],[25,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",636,21,636,22]],[26,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2053,23,2053,24]],[27,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs",195,92,195,93]],[29,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2052,19,2052,23]],[30,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/pal/unix/process/process_common.rs",635,19,635,24]],[31,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,19]],[32,["no-location",0,0,0,0]],[33,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,18,154,21]],[34,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,33]],[35,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",389,5,389,40]],[36,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",160,2,160,2]],[38,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,43,150,44]],[40,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",154,9,154,15]],[41,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/hint.rs",388,27,388,32]],[42,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs",150,1,160,2]],[43,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs",250,5,250,71]],[44,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs",521,1,521,56]],[45,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2424,6,2424,6]],[46,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2423,9,2423,26]],[48,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,15,2422,19]],[49,["/Users/steven/.rustup/toolchains/nightly-2024-11-29-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/process.rs",2422,5,2424,6]],[50,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",5,5,8,6]],[51,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",2,19,2,20]],[52,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",3,23,3,24]],[53,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",5,11,5,22]],[54,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",5,11,5,18]],[55,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",5,21,5,22]],[56,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",6,7,6,21]],[57,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",6,14,6,21]],[58,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",7,27,7,28]],[59,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",7,17,7,28]],[60,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",7,17,7,24]],[61,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",7,7,7,28]],[62,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",10,2,10,2]],[63,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",9,12,9,15]],[65,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",1,13,1,14]],[66,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",2,9,2,16]],[67,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",3,9,3,20]],[68,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",1,1,10,2]],[69,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",15,18,15,26]],[70,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",15,18,15,29]],[71,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",13,13,13,15]],[72,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",15,27,15,28]],[73,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",16,13,16,19]],[74,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",14,18,14,20]],[75,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",15,33,15,39]],[76,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",15,18,15,39]],[77,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",16,5,16,20]],[78,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",17,2,17,2]],[80,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",15,9,15,15]],[81,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",13,9,13,10]],[82,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",14,9,14,15]],[83,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",12,1,17,2]],[84,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",21,3,21,16]],[85,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",21,3,21,18]],[86,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",23,2,23,2]],[88,["/Users/steven/Desktop/projs/mir-semantics/deps/stable-mir-json/tests/integration/programs/sum-to-n.rs",20,1,23,2]]],"debug":null,"machine":{"endian":"Little","pointer_width":{"num_bits":64}}} \ No newline at end of file From 49fda4a916d861b3c57bb22472364aa58492c3df Mon Sep 17 00:00:00 2001 From: Stevengre Date: Tue, 9 Sep 2025 14:48:17 +0800 Subject: [PATCH 2/3] Add comprehensive JSON schema for Stable MIR JSON format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Implement complete JSON Schema for stable-mir-json output (#98) - Add schema validation script with comprehensive error reporting - Create detailed documentation for schema usage and structure - Update README with schema integration information - Include examples and best practices for schema validation Features: - Full coverage of all Stable MIR data structures - Type safety with detailed constraints and validation - Compatible with standard JSON Schema tools (ajv, jsonschema) - Comprehensive field descriptions and documentation - Validation script for development and CI/CD workflows Files added: - schema/stable-mir.schema.json: Main JSON Schema definition - scripts/validate-schema.sh: Validation script with options - docs/schema.md: Complete schema documentation - Updated README.md: Integration and usage instructions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- README.md | 55 +++- docs/schema.md | 392 ++++++++++++++++++++++++++ schema/stable-mir.schema.json | 514 +++++++++++++++++++++++++++++++--- scripts/validate-schema.sh | 211 ++++++++++++++ 4 files changed, 1124 insertions(+), 48 deletions(-) create mode 100644 docs/schema.md create mode 100755 scripts/validate-schema.sh diff --git a/README.md b/README.md index f88cf0f..636a7dc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Rust Stable MIR Pretty Printing +# Rust Stable MIR JSON Generator -This package provides a program that will emit a JSON serialisation of the Stable MIR of a Rust program +This package provides a program that will emit a JSON serialisation of the Stable MIR of a Rust program, along with a comprehensive JSON schema for validation and tooling integration. ## Building @@ -79,4 +79,53 @@ cargo run --bin cargo_stable_mir_json -- $PWD [OPTIONAL-PATH-FOR-DIR] ```bash RUSTC=/.sh cargo build ``` -NOTE: by default `` is `~/.stable_mir_json` \ No newline at end of file +NOTE: by default `` is `~/.stable_mir_json` + +## JSON Schema + +This repository includes a comprehensive JSON schema for the Stable MIR JSON format, enabling validation, tooling integration, and documentation. + +### Schema Location + +- **Schema file**: [`schema/stable-mir.schema.json`](schema/stable-mir.schema.json) +- **Documentation**: [`docs/schema.md`](docs/schema.md) + +### Validation + +Validate your generated JSON files against the schema: + +```shell +# Validate all test files +./scripts/validate-schema.sh + +# Validate specific files +./scripts/validate-schema.sh path/to/your/file.smir.json + +# Verbose validation with detailed output +./scripts/validate-schema.sh --verbose +``` + +### Schema Features + +- **Complete coverage** of all Stable MIR data structures +- **Type safety** with detailed type definitions and constraints +- **Documentation** with descriptions for all fields and structures +- **Validation support** for development and CI/CD pipelines +- **Tool integration** compatible with standard JSON Schema validators + +### Using with External Tools + +```shell +# Using ajv-cli (npm install -g ajv-cli) +ajv validate -s schema/stable-mir.schema.json -d "file.smir.json" + +# Using Python jsonschema (pip install jsonschema) +python -c " +import json, jsonschema +schema = json.load(open('schema/stable-mir.schema.json')) +data = json.load(open('file.smir.json')) +jsonschema.validate(data, schema) +" +``` + +For detailed schema documentation, see [`docs/schema.md`](docs/schema.md). \ No newline at end of file diff --git a/docs/schema.md b/docs/schema.md new file mode 100644 index 0000000..c926d9f --- /dev/null +++ b/docs/schema.md @@ -0,0 +1,392 @@ +# Stable MIR JSON Schema Documentation + +This document describes the JSON schema for Rust Stable MIR (Mid-level Intermediate Representation) output generated by the `stable-mir-json` tool. + +## Overview + +The Stable MIR JSON format provides a complete serialization of Rust's MIR after monomorphization, containing all information needed for code generation, optimization, and analysis. The JSON schema ensures consistent structure and enables validation of generated files. + +## Schema Location + +The JSON schema is located at: `schema/stable-mir.schema.json` + +## Usage + +### Validating JSON Files + +Use the provided validation script to check JSON files against the schema: + +```bash +# Validate all test files +./scripts/validate-schema.sh + +# Validate specific files +./scripts/validate-schema.sh path/to/file.smir.json + +# Verbose validation +./scripts/validate-schema.sh --verbose +``` + +### Integration with Tools + +The schema can be used with various JSON validation tools: + +```bash +# Using ajv-cli (install with: npm install -g ajv-cli) +ajv validate -s schema/stable-mir.schema.json -d "path/to/file.smir.json" + +# Using jsonschema (Python - install with: pip install jsonschema) +python -c " +import json, jsonschema +schema = json.load(open('schema/stable-mir.schema.json')) +data = json.load(open('path/to/file.smir.json')) +jsonschema.validate(data, schema) +print('✓ Valid') +" +``` + +## Root Structure + +Every Stable MIR JSON file has the following top-level structure: + +```json +{ + "name": "crate_name", + "crate_id": 12345, + "allocs": [...], + "functions": [...], + "uneval_consts": [...], + "items": [...], + "types": [...], + "spans": [...], + "debug": {...}, + "machine": {...} +} +``` + +### Root Fields + +| Field | Type | Description | +|-------|------|-------------| +| `name` | `string` | Name of the crate | +| `crate_id` | `integer` | Unique identifier for the crate | +| `allocs` | `array` | Memory allocations indexed by AllocId | +| `functions` | `array` | Function symbols referenced in the program | +| `uneval_consts` | `array` | Unevaluated constants | +| `items` | `array` | Monomorphized items (functions, statics, etc.) | +| `types` | `array` | Type information with metadata | +| `spans` | `array` | Source location spans | +| `debug` | `object/null` | Optional debug information | +| `machine` | `object` | Target machine information | + +## Key Data Structures + +### Allocations (`allocs`) + +Array of `[AllocId, AllocInfo]` tuples representing memory allocations: + +```json +[ + [0, {"Memory": {"align": 1, "bytes": [72, 101, 108, 108, 111], "mutability": "Not", "provenance": {"ptrs": []}}}], + [1, {"Static": 42}] +] +``` + +**AllocInfo variants:** +- `Memory`: Raw memory with alignment, bytes, mutability, and pointer provenance +- `Static`: Reference to a static item by DefId +- `Function`: Function allocation +- `VTable`: Virtual table allocation + +### Functions (`functions`) + +Array of `[LinkMapKey, FnSymType]` tuples representing function symbols: + +```json +[ + ["main", {"NormalSym": "_ZN4main4main17h..."}], + [{"Some": "complex_key"}, {"IntrinsicSym": "black_box"}] +] +``` + +**FnSymType variants:** +- `NormalSym`: Regular function with mangled symbol name +- `IntrinsicSym`: Compiler intrinsic function +- `NoOpSym`: No-operation placeholder + +### Items (`items`) + +Array of monomorphized items representing the actual code and data: + +```json +{ + "symbol_name": "_ZN4main4main17h...", + "mono_item_kind": { + "MonoItemFn": { + "name": "main::main", + "id": 42, + "body": { + "arg_count": 0, + "blocks": [...], + "locals": [...], + "span": 123, + "spread_arg": null, + "var_debug_info": [] + } + } + }, + "details": null +} +``` + +**MonoItemKind variants:** +- `MonoItemFn`: Function with optional MIR body +- `MonoItemStatic`: Static item with optional allocation +- `MonoItemGlobalAsm`: Global assembly code + +### Types (`types`) + +Array of `[Ty, TypeMetadata]` tuples providing type information with layout: + +```json +[ + [{...}, {"PrimitiveType": {"layout": {...}, "prim_type": "Bool"}}], + [{...}, {"StructType": {"layout": {...}, "name": "MyStruct", "field_types": [0, 1, 2]}}] +] +``` + +**TypeMetadata variants:** +- `PrimitiveType`: Basic types (bool, integers, floats) +- `StructType`: Structure types with field information +- `EnumType`: Enumeration types with discriminants +- `UnionType`: Union types +- `TupleType`: Tuple types +- `ArrayType`: Fixed-size arrays +- `SliceType`: Dynamic slices + +### MIR Body Structure + +Function bodies contain detailed MIR information: + +```json +{ + "arg_count": 2, + "blocks": [ + { + "statements": [ + { + "kind": {"Assign": [{"local": 0, "projection": []}, {"Use": {"Copy": {"local": 1, "projection": []}}}]}, + "span": 45 + } + ], + "terminator": { + "kind": "Return", + "span": 46 + } + } + ], + "locals": [ + {"mutability": "Mut", "span": 44, "ty": 0}, + {"mutability": "Not", "span": 44, "ty": 1} + ], + "span": 44, + "spread_arg": null, + "var_debug_info": [] +} +``` + +## Layout Information + +Every type includes complete layout information for target-specific code generation: + +```json +{ + "abi": {"Scalar": {...}}, + "abi_align": 4, + "fields": {"Primitive"}, + "size": 4, + "variants": {"Single": {"index": 0}} +} +``` + +**ABI variants:** +- `Uninhabited`: No valid values exist +- `Scalar`: Single scalar value +- `ScalarPair`: Pair of scalar values +- `Vector`: SIMD vector type +- `Aggregate`: Complex aggregate type + +**Field shapes:** +- `Primitive`: Single primitive field +- `Union`: Union with multiple overlapping fields +- `Array`: Array with count and stride +- `Arbitrary`: Arbitrary field layout with explicit offsets + +## Advanced Features + +### Memory Provenance + +Memory allocations include provenance tracking for pointer safety: + +```json +{ + "provenance": { + "ptrs": [[0, 7], [8, 15]] // [offset, allocation_id] pairs + } +} +``` + +### Debug Information + +Optional debug information provides additional metadata: + +```json +{ + "debug": { + "fn_sources": [...], + "types": {...}, + "foreign_modules": [...] + } +} +``` + +### Source Spans + +All MIR elements reference source locations through span indices: + +```json +{ + "spans": [ + [0, {"file": "src/main.rs", "line": 1, "column": 5}], + [1, {"file": "src/main.rs", "line": 2, "column": 10}] + ] +} +``` + +## Validation + +The schema provides comprehensive validation including: + +- **Structure validation**: Ensures correct nesting and required fields +- **Type validation**: Validates data types and value ranges +- **Enum validation**: Ensures only valid enum variants are used +- **Reference validation**: Checks that indices reference valid entries +- **Layout consistency**: Validates layout information consistency + +## Best Practices + +### Working with the Schema + +1. **Always validate**: Use the validation script before processing files +2. **Handle optionals**: Many fields are optional (`null` values) +3. **Follow indices**: Use indices to look up referenced data +4. **Respect layout**: Use layout information for target-specific operations +5. **Check variants**: Always handle all possible enum variants + +### Performance Considerations + +1. **Lazy loading**: Parse only needed sections for large files +2. **Index caching**: Cache frequently accessed indices +3. **Stream processing**: Use streaming parsers for very large files +4. **Schema validation**: Validate once, then trust the structure + +## Schema Evolution + +The schema follows semantic versioning: + +- **Major version**: Breaking changes to structure or semantics +- **Minor version**: Backwards-compatible additions +- **Patch version**: Bug fixes and clarifications + +Current version: **1.0.0** + +## Examples + +### Minimal Valid File + +```json +{ + "name": "hello_world", + "crate_id": 1, + "allocs": [], + "functions": [], + "uneval_consts": [], + "items": [], + "types": [], + "spans": [], + "debug": null, + "machine": {} +} +``` + +### Simple Function + +```json +{ + "name": "example", + "crate_id": 1, + "allocs": [], + "functions": [ + [{"fn_def": 0}, {"NormalSym": "_ZN7example4main17h..."}] + ], + "uneval_consts": [], + "items": [{ + "symbol_name": "_ZN7example4main17h...", + "mono_item_kind": { + "MonoItemFn": { + "name": "example::main", + "id": 0, + "body": { + "arg_count": 0, + "blocks": [{ + "statements": [], + "terminator": {"kind": "Return", "span": 0} + }], + "locals": [{"mutability": "Mut", "span": 0, "ty": 0}], + "span": 0, + "spread_arg": null, + "var_debug_info": [] + } + } + }, + "details": null + }], + "types": [ + [{}, {"PrimitiveType": {"layout": {"abi": "Uninhabited", "abi_align": 1, "fields": "Primitive", "size": 0, "variants": {"Single": {"index": 0}}}, "prim_type": {"Tuple": 0}}}] + ], + "spans": [ + [0, {"file": "src/main.rs", "line": 1, "column": 0}] + ], + "debug": null, + "machine": {} +} +``` + +## Troubleshooting + +### Common Validation Errors + +1. **Missing required fields**: Ensure all root fields are present +2. **Invalid types**: Check that numbers are numbers, strings are strings +3. **Invalid array structures**: Arrays should contain proper tuple structures +4. **Invalid enum variants**: Ensure enum variants match schema exactly +5. **Index out of bounds**: Verify that all indices reference existing elements + +### Getting Help + +- Check the validation script output for specific error messages +- Examine the schema file for detailed type definitions +- Compare against working examples in the test directory +- Review the Rust source code for serialization logic + +## Contributing + +To improve the schema: + +1. Update `schema/stable-mir.schema.json` +2. Run `./scripts/validate-schema.sh` to test changes +3. Update this documentation +4. Add test cases if needed +5. Submit a pull request + +The schema should remain synchronized with the Rust serialization code in `src/printer.rs`. \ No newline at end of file diff --git a/schema/stable-mir.schema.json b/schema/stable-mir.schema.json index 80c7da0..53d1095 100644 --- a/schema/stable-mir.schema.json +++ b/schema/stable-mir.schema.json @@ -5,51 +5,150 @@ "description": "JSON Schema for Rust Stable MIR (Mid-level Intermediate Representation) output generated by stable-mir-json tool", "version": "1.0.0", "type": "object", - "required": ["allocs", "functions", "items", "types"], + "required": ["name", "crate_id", "allocs", "functions", "uneval_consts", "items", "types", "spans", "debug", "machine"], "properties": { + "name": { + "description": "Name of the crate", + "type": "string" + }, + "crate_id": { + "description": "Unique identifier for the crate", + "type": "integer" + }, "allocs": { - "description": "Memory allocations used by the program", + "description": "Memory allocations indexed by AllocId", "type": "array", "items": { + "description": "Tuple of [AllocId, AllocInfo]", "type": "array", - "items": { "$ref": "#/$defs/Allocation" } + "items": [ + { "$ref": "#/$defs/AllocId" }, + { "$ref": "#/$defs/AllocInfo" } + ], + "minItems": 2, + "maxItems": 2 } }, "functions": { "description": "Function symbols referenced in the program", "type": "array", "items": { + "description": "Tuple of [LinkMapKey, FnSymType]", "type": "array", - "items": { "$ref": "#/$defs/FunctionSymbol" }, - "minItems": 1, - "maxItems": 1 + "items": [ + { "$ref": "#/$defs/LinkMapKey" }, + { "$ref": "#/$defs/FnSymType" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "uneval_consts": { + "description": "Unevaluated constants", + "type": "array", + "items": { + "description": "Tuple of [ConstDef, String representation]", + "type": "array", + "items": [ + { "$ref": "#/$defs/ConstDef" }, + { "type": "string" } + ], + "minItems": 2, + "maxItems": 2 } }, "items": { "description": "Monomorphized items (functions, statics, etc.) in the program", "type": "array", - "items": { "$ref": "#/$defs/MonoItem" } + "items": { "$ref": "#/$defs/Item" } }, "types": { - "description": "Type information with layout data", + "description": "Type information with metadata", "type": "array", "items": { + "description": "Tuple of [Ty, TypeMetadata]", "type": "array", - "items": { "$ref": "#/$defs/TypeData" }, - "minItems": 1, - "maxItems": 1 + "items": [ + { "$ref": "#/$defs/Ty" }, + { "$ref": "#/$defs/TypeMetadata" } + ], + "minItems": 2, + "maxItems": 2 } + }, + "spans": { + "description": "Source location spans", + "type": "array", + "items": { + "description": "Tuple of [span_index, SourceData]", + "type": "array", + "items": [ + { "type": "integer" }, + { "$ref": "#/$defs/SourceData" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "debug": { + "description": "Optional debug information", + "oneOf": [ + { "type": "null" }, + { "$ref": "#/$defs/SmirJsonDebugInfo" } + ] + }, + "machine": { + "description": "Target machine information", + "$ref": "#/$defs/MachineInfo" } }, "$defs": { - "Allocation": { - "description": "Memory allocation data", - "type": "object", + "AllocId": { + "description": "Allocation identifier", + "type": "integer", + "minimum": 0 + }, + "AllocInfo": { + "description": "Information about an allocation", "oneOf": [ + { + "type": "object", + "properties": { + "Function": { + "description": "Function allocation", + "type": "object" + } + }, + "required": ["Function"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "VTable": { + "description": "Virtual table allocation", + "type": "object" + } + }, + "required": ["VTable"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "Static": { + "description": "Static allocation with DefId", + "$ref": "#/$defs/DefId" + } + }, + "required": ["Static"], + "additionalProperties": false + }, { "type": "object", "properties": { "Memory": { + "description": "Memory allocation", "type": "object", "required": ["align", "bytes", "mutability", "provenance"], "properties": { @@ -93,8 +192,15 @@ } ] }, - "FunctionSymbol": { - "description": "Function symbol reference", + "LinkMapKey": { + "description": "Key for function map linking (serialized conditionally based on features)", + "oneOf": [ + { "type": "string" }, + { "type": "object" } + ] + }, + "FnSymType": { + "description": "Function symbol type", "oneOf": [ { "type": "object", @@ -131,19 +237,26 @@ } ] }, - "MonoItem": { - "description": "A monomorphized item (function, static, global asm)", + "ConstDef": { + "description": "Constant definition identifier", + "type": "integer" + }, + "Item": { + "description": "A monomorphized item", "type": "object", - "required": ["details", "mono_item_kind", "symbol_name"], + "required": ["symbol_name", "mono_item_kind", "details"], "properties": { - "details": { - "description": "Additional details about the item (usually null)", - "type": ["null", "object"] - }, - "mono_item_kind": { "$ref": "#/$defs/MonoItemKind" }, "symbol_name": { "description": "Mangled symbol name", "type": "string" + }, + "mono_item_kind": { "$ref": "#/$defs/MonoItemKind" }, + "details": { + "description": "Additional details about the item", + "oneOf": [ + { "type": "null" }, + { "$ref": "#/$defs/ItemDetails" } + ] } } }, @@ -153,7 +266,24 @@ { "type": "object", "properties": { - "MonoItemFn": { "$ref": "#/$defs/MonoItemFnData" } + "MonoItemFn": { + "type": "object", + "required": ["name", "id", "body"], + "properties": { + "name": { + "description": "Function name", + "type": "string" + }, + "id": { "$ref": "#/$defs/DefId" }, + "body": { + "description": "Optional MIR body", + "oneOf": [ + { "type": "null" }, + { "$ref": "#/$defs/Body" } + ] + } + } + } }, "required": ["MonoItemFn"], "additionalProperties": false @@ -161,7 +291,24 @@ { "type": "object", "properties": { - "MonoItemStatic": { "$ref": "#/$defs/MonoItemStaticData" } + "MonoItemStatic": { + "type": "object", + "required": ["name", "id", "allocation"], + "properties": { + "name": { + "description": "Static name", + "type": "string" + }, + "id": { "$ref": "#/$defs/DefId" }, + "allocation": { + "description": "Optional allocation", + "oneOf": [ + { "type": "null" }, + { "$ref": "#/$defs/Allocation" } + ] + } + } + } }, "required": ["MonoItemStatic"], "additionalProperties": false @@ -169,43 +316,320 @@ { "type": "object", "properties": { - "MonoItemGlobalAsm": { "$ref": "#/$defs/MonoItemGlobalAsmData" } + "MonoItemGlobalAsm": { + "type": "object", + "required": ["asm"], + "properties": { + "asm": { + "description": "Assembly code", + "type": "string" + } + } + } }, "required": ["MonoItemGlobalAsm"], "additionalProperties": false } ] }, - "MonoItemFnData": { - "description": "Function item with MIR body", + "DefId": { + "description": "Definition identifier", + "type": "integer" + }, + "ItemDetails": { + "description": "Additional details about an item", "type": "object", - "required": ["body", "id", "name"], "properties": { - "body": { + "fn_instance_kind": { "oneOf": [ - { "$ref": "#/$defs/Body" }, - { - "type": "array", - "items": { "$ref": "#/$defs/Body" } - } + { "type": "null" }, + { "$ref": "#/$defs/InstanceKind" } ] }, - "id": { - "description": "Function definition ID", - "type": "integer" + "fn_item_kind": { + "oneOf": [ + { "type": "null" }, + { "$ref": "#/$defs/ItemKind" } + ] + }, + "fn_body_details": { + "oneOf": [ + { "type": "null" }, + { "$ref": "#/$defs/BodyDetails" } + ] + }, + "internal_kind": { + "description": "Internal kind as string", + "type": "string" + }, + "path": { + "description": "Item path", + "type": "string" + }, + "internal_ty": { + "description": "Internal type as string", + "type": "string" + }, + "generic_data": { "$ref": "#/$defs/GenericData" } + } + }, + "Ty": { + "description": "Type reference from stable_mir", + "type": "object" + }, + "TypeMetadata": { + "description": "Type metadata with layout information", + "oneOf": [ + { + "type": "object", + "properties": { + "EnumType": { + "type": "object", + "required": ["layout", "name", "discriminants", "field_types"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "name": { "type": "string" }, + "discriminants": { + "type": "array", + "items": { "type": "integer" } + }, + "field_types": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { + "type": "array", + "items": { "type": "integer" } + } + ] + } + } + } + }, + "required": ["EnumType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StructType": { + "type": "object", + "required": ["layout", "name", "field_types"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "name": { "type": "string" }, + "field_types": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { + "type": "array", + "items": { "type": "integer" } + } + ] + } + } + } + }, + "required": ["StructType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "UnionType": { + "type": "object", + "required": ["layout", "name", "field_types"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "name": { "type": "string" }, + "field_types": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { + "type": "array", + "items": { "type": "integer" } + } + ] + } + } + } + }, + "required": ["UnionType"], + "additionalProperties": false }, - "name": { - "description": "Function name", + { + "type": "object", + "properties": { + "TupleType": { + "type": "object", + "required": ["layout", "field_types"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "field_types": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { + "type": "array", + "items": { "type": "integer" } + } + ] + } + } + } + }, + "required": ["TupleType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ArrayType": { + "type": "object", + "required": ["layout", "len", "field_types"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "len": { "type": "integer" }, + "field_types": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { + "type": "array", + "items": { "type": "integer" } + } + ] + } + } + } + }, + "required": ["ArrayType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "SliceType": { + "type": "object", + "required": ["layout", "field_types"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "field_types": { + "oneOf": [ + { "type": "string", "enum": ["elided"] }, + { + "type": "array", + "items": { "type": "integer" } + } + ] + } + } + } + }, + "required": ["SliceType"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "PrimitiveType": { + "type": "object", + "required": ["layout", "prim_type"], + "properties": { + "layout": { "$ref": "#/$defs/LayoutData" }, + "prim_type": { "$ref": "#/$defs/PrimitiveTy" } + } + } + }, + "required": ["PrimitiveType"], + "additionalProperties": false + } + ] + }, + "SourceData": { + "description": "Source location data", + "type": "object" + }, + "SmirJsonDebugInfo": { + "description": "Debug information", + "type": "object", + "required": ["fn_sources", "types", "foreign_modules"], + "properties": { + "fn_sources": { + "type": "array", + "items": { + "type": "array", + "items": [ + { "$ref": "#/$defs/LinkMapKey" }, + { "$ref": "#/$defs/ItemSource" } + ], + "minItems": 2, + "maxItems": 2 + } + }, + "types": { "$ref": "#/$defs/TyMap" }, + "foreign_modules": { + "type": "array", + "items": { + "type": "array", + "items": [ + { "type": "string" }, + { + "type": "array", + "items": { "$ref": "#/$defs/ForeignModule" } + } + ], + "minItems": 2, + "maxItems": 2 + } + } + } + }, + "MachineInfo": { + "description": "Target machine information from stable_mir", + "type": "object" + }, + "Allocation": { + "description": "Memory allocation", + "type": "object" + }, + "InstanceKind": { + "description": "Kind of function instance", + "type": "object" + }, + "ItemKind": { + "description": "Kind of item", + "type": "object" + }, + "BodyDetails": { + "description": "Details about function body", + "type": "object", + "required": ["pp"], + "properties": { + "pp": { + "description": "Pretty-printed representation", "type": "string" } } }, - "MonoItemStaticData": { - "description": "Static item data", + "GenericData": { + "description": "Generic parameter data", + "type": "array", + "items": { + "type": "array", + "items": { "type": "string" }, + "minItems": 2, + "maxItems": 2 + } + }, + "ItemSource": { + "description": "Source of an item", + "type": "array", + "items": { "type": "string" } + }, + "TyMap": { + "description": "Type map for debug info", "type": "object" }, - "MonoItemGlobalAsmData": { - "description": "Global assembly item data", + "ForeignModule": { + "description": "Foreign module information", "type": "object" }, "Body": { diff --git a/scripts/validate-schema.sh b/scripts/validate-schema.sh new file mode 100755 index 0000000..fea1e24 --- /dev/null +++ b/scripts/validate-schema.sh @@ -0,0 +1,211 @@ +#!/bin/bash + +# Script to validate Stable MIR JSON files against the JSON schema +# Requires: jq with JSON Schema validation support + +set -e + +SCHEMA_FILE="${SCHEMA_FILE:-$(dirname "$0")/../schema/stable-mir.schema.json}" +TEST_DIR="${TEST_DIR:-$(dirname "$0")/../tests}" +VERBOSE="${VERBOSE:-0}" + +usage() { + echo "Usage: $0 [options] [json-files...]" + echo "" + echo "Validate Stable MIR JSON files against the JSON schema" + echo "" + echo "Options:" + echo " -s, --schema PATH Path to schema file (default: ../schema/stable-mir.schema.json)" + echo " -t, --test-dir PATH Directory containing test JSON files (default: ../tests)" + echo " -v, --verbose Enable verbose output" + echo " -h, --help Show this help message" + echo "" + echo "Environment variables:" + echo " SCHEMA_FILE Path to schema file" + echo " TEST_DIR Directory containing test files" + echo " VERBOSE Enable verbose output (0/1)" + echo "" + echo "Examples:" + echo " $0 # Validate all test files" + echo " $0 file.smir.json # Validate specific file" + echo " $0 --verbose tests/**/*.json # Validate with verbose output" +} + +log_verbose() { + if [ "$VERBOSE" = "1" ]; then + echo "$@" >&2 + fi +} + +log_info() { + echo "$@" >&2 +} + +log_error() { + echo "ERROR: $@" >&2 +} + +# Parse command line arguments +FILES=() +while [[ $# -gt 0 ]]; do + case $1 in + -s|--schema) + SCHEMA_FILE="$2" + shift 2 + ;; + -t|--test-dir) + TEST_DIR="$2" + shift 2 + ;; + -v|--verbose) + VERBOSE=1 + shift + ;; + -h|--help) + usage + exit 0 + ;; + -*) + log_error "Unknown option: $1" + usage + exit 1 + ;; + *) + FILES+=("$1") + shift + ;; + esac +done + +# Check if required tools are installed +if ! command -v jq &> /dev/null; then + log_error "jq is required but not installed" + exit 1 +fi + +# Check if schema file exists +if [ ! -f "$SCHEMA_FILE" ]; then + log_error "Schema file not found: $SCHEMA_FILE" + exit 1 +fi + +log_verbose "Using schema file: $SCHEMA_FILE" + +# If no files specified, find all expected JSON files in test directory +if [ ${#FILES[@]} -eq 0 ]; then + log_verbose "No files specified, searching for test files in: $TEST_DIR" + + # Find all .smir.json.expected files + while IFS= read -r -d '' file; do + FILES+=("$file") + done < <(find "$TEST_DIR" -name "*.smir.json.expected" -print0 2>/dev/null) + + # Also find any .smir.json files + while IFS= read -r -d '' file; do + FILES+=("$file") + done < <(find "$TEST_DIR" -name "*.smir.json" -print0 2>/dev/null) +fi + +if [ ${#FILES[@]} -eq 0 ]; then + log_error "No JSON files found to validate" + exit 1 +fi + +log_info "Found ${#FILES[@]} files to validate" + +# Validation results +PASSED=0 +FAILED=0 +ERRORS=() + +# Validate each file +for file in "${FILES[@]}"; do + if [ ! -f "$file" ]; then + log_error "File not found: $file" + FAILED=$((FAILED + 1)) + ERRORS+=("File not found: $file") + continue + fi + + log_verbose "Validating: $file" + + # Check if file is valid JSON first + if ! jq empty "$file" >/dev/null 2>&1; then + log_error "Invalid JSON: $file" + FAILED=$((FAILED + 1)) + ERRORS+=("Invalid JSON: $file") + continue + fi + + # Note: Full JSON Schema validation with jq requires additional setup + # For now, we'll do basic structure validation + + # Check if file has required top-level fields + required_fields=("name" "crate_id" "allocs" "functions" "uneval_consts" "items" "types" "spans" "debug" "machine") + missing_fields=() + + for field in "${required_fields[@]}"; do + if ! jq -e "has(\"$field\")" "$file" >/dev/null 2>&1; then + missing_fields+=("$field") + fi + done + + if [ ${#missing_fields[@]} -gt 0 ]; then + log_error "Missing required fields in $file: ${missing_fields[*]}" + FAILED=$((FAILED + 1)) + ERRORS+=("Missing fields in $file: ${missing_fields[*]}") + continue + fi + + # Basic type checks + type_errors=() + + # Check that name is a string + if ! jq -e '.name | type == "string"' "$file" >/dev/null 2>&1; then + type_errors+=("name should be string") + fi + + # Check that crate_id is a number + if ! jq -e '.crate_id | type == "number"' "$file" >/dev/null 2>&1; then + type_errors+=("crate_id should be number") + fi + + # Check that arrays are arrays + for array_field in "allocs" "functions" "uneval_consts" "items" "types" "spans"; do + if ! jq -e ".$array_field | type == \"array\"" "$file" >/dev/null 2>&1; then + type_errors+=("$array_field should be array") + fi + done + + if [ ${#type_errors[@]} -gt 0 ]; then + log_error "Type errors in $file: ${type_errors[*]}" + FAILED=$((FAILED + 1)) + ERRORS+=("Type errors in $file: ${type_errors[*]}") + continue + fi + + # If we get here, basic validation passed + PASSED=$((PASSED + 1)) + log_verbose "✓ $file" +done + +# Print summary +echo "" +echo "Validation Summary:" +echo "==================" +echo "Files validated: $((PASSED + FAILED))" +echo "Passed: $PASSED" +echo "Failed: $FAILED" + +if [ $FAILED -gt 0 ]; then + echo "" + echo "Errors:" + for error in "${ERRORS[@]}"; do + echo " - $error" + done + echo "" + echo "Note: This script performs basic validation only." + echo "For full JSON Schema validation, consider using a dedicated validator." +fi + +exit $FAILED \ No newline at end of file From c80425a9244dcee3939211760d211b26f5db3418 Mon Sep 17 00:00:00 2001 From: Stevengre Date: Thu, 11 Sep 2025 10:23:49 +0800 Subject: [PATCH 3/3] update stable mir schema --- schema/stable-mir.schema.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/schema/stable-mir.schema.json b/schema/stable-mir.schema.json index 53d1095..f61c1a3 100644 --- a/schema/stable-mir.schema.json +++ b/schema/stable-mir.schema.json @@ -19,11 +19,11 @@ "description": "Memory allocations indexed by AllocId", "type": "array", "items": { - "description": "Tuple of [AllocId, AllocInfo]", + "description": "Tuple of [AllocId, GlobalAlloc]", "type": "array", "items": [ { "$ref": "#/$defs/AllocId" }, - { "$ref": "#/$defs/AllocInfo" } + { "$ref": "#/$defs/GlobalAlloc" } ], "minItems": 2, "maxItems": 2 @@ -108,7 +108,7 @@ "type": "integer", "minimum": 0 }, - "AllocInfo": { + "GlobalAlloc": { "description": "Information about an allocation", "oneOf": [ {