diff --git a/.claude/skills/release-wx/SKILL.md b/.claude/skills/release-wx/SKILL.md index f47bec5..e79c8bd 100644 --- a/.claude/skills/release-wx/SKILL.md +++ b/.claude/skills/release-wx/SKILL.md @@ -116,8 +116,12 @@ anything is safe to trigger** — the two repos differ: with nothing to approve. Confirm gate presence/absence before creating the release, don't assume symmetry between repos. -Watch the run: `gh run list --workflow=.yml --limit 3` / -`gh run view --json status,conclusion`. +The publish workflow triggers itself off the `release: published` event — +`gh release create` above is enough to kick it off, don't also run +`gh workflow run .yml` by hand, that would start a second, redundant +run. Just watch the one that already started: `gh run list +--workflow=.yml --limit 3` / `gh run view --json +status,conclusion`. If a release's workflow fails on a real bug (not the code being released, but the workflow/tooling itself): fix it on `main`, then **delete and diff --git a/.gitignore b/.gitignore index 7debbf7..8edf1df 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ target/ .DS_Store out/ node_modules/ -cli/npm/*/bin \ No newline at end of file +cli/npm/*/bin +thesis/ \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index a86f45c..f2dc6e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,6 +20,9 @@ package.authors = ["Artem Melnyk "] insta.opt-level = 3 similar.opt-level = 3 +[profile.dev] +debug = "line-tables-only" + # Debug symbols are dead weight in a shipped `wx` binary (npm/GitHub release # artifacts, the VS Code extension's PATH lookup) — this alone drops it from # ~7.4MB to ~5.0MB, no runtime or compile-time cost. @@ -43,4 +46,4 @@ serde_json = "1.0" type_complexity = "allow" result_unit_err = "allow" match_like_matches_macro = "allow" -new_without_default = "allow" \ No newline at end of file +new_without_default = "allow" diff --git a/crates/wx-compiler/src/ast/mod.rs b/crates/wx-compiler/src/ast/mod.rs index 74c86cb..dac7730 100644 --- a/crates/wx-compiler/src/ast/mod.rs +++ b/crates/wx-compiler/src/ast/mod.rs @@ -861,59 +861,6 @@ impl BinaryOp { BinaryOp::RightShift => ">>", } } - - pub fn is_assignment(&self) -> bool { - match self { - BinaryOp::Assign - | BinaryOp::AddAssign - | BinaryOp::SubAssign - | BinaryOp::MulAssign - | BinaryOp::DivAssign - | BinaryOp::RemAssign => true, - _ => false, - } - } - - pub fn is_comparison(&self) -> bool { - match self { - BinaryOp::Eq - | BinaryOp::NotEq - | BinaryOp::Less - | BinaryOp::LessEq - | BinaryOp::Greater - | BinaryOp::GreaterEq => true, - _ => false, - } - } - - pub fn is_logical(&self) -> bool { - match self { - BinaryOp::And | BinaryOp::Or => true, - _ => false, - } - } - - pub fn is_arithmetic(&self) -> bool { - match self { - BinaryOp::Add - | BinaryOp::Sub - | BinaryOp::Mul - | BinaryOp::Div - | BinaryOp::Rem => true, - _ => false, - } - } - - pub fn is_bitwise(&self) -> bool { - match self { - BinaryOp::BitAnd - | BinaryOp::BitOr - | BinaryOp::BitXor - | BinaryOp::LeftShift - | BinaryOp::RightShift => true, - _ => false, - } - } } impl std::fmt::Display for BinaryOp { @@ -1026,9 +973,14 @@ pub struct Separated { #[cfg_attr(debug_assertions, derive(Debug))] pub enum Expression { Error, - /// `1` + /// `1`. Always the raw, non-negative magnitude as written — `-1` is a + /// separate `Unary { InvertSign, .. }` node wrapping this, never folded + /// in here. Stored as `u64` (not `i64`) so the full range a literal can + /// validly denote — up to `u64::MAX` directly, or up to `i64::MIN`'s + /// magnitude when negated — is representable before a concrete target + /// type decides the final signed/unsigned interpretation. Int { - value: i64, + value: u64, }, /// `1.0` Float { @@ -1076,10 +1028,9 @@ pub enum Expression { Deref { pointer: Box>, }, - /// `{expr}.&` or `{expr}.&mut` + /// `{expr}.&` — always produces a shared reference. AddressOf { value: Box>, - mut_span: Option, }, /// `return {expr}` Return { @@ -1314,6 +1265,17 @@ pub enum AssocTypeBindingKind { Bound(Spanned), } +/// `*T` = exclusive pointer/slice/array, `&T` = shared, always read-only. +/// No enforcement of "only one exclusive value at a time" — this is a naming +/// convention carried through the type system, not a move-checker. +#[derive(Clone, Copy, PartialEq, Eq, Hash)] +#[cfg_attr(test, derive(serde::Serialize))] +#[cfg_attr(debug_assertions, derive(Debug))] +pub enum Ownership { + Exclusive, + Shared, +} + #[cfg_attr(test, derive(serde::Serialize))] #[cfg_attr(debug_assertions, derive(Debug))] pub enum TypeExpression { @@ -1326,21 +1288,21 @@ pub enum TypeExpression { params: Box<[Separated>]>, result: Option>>, }, - /// `*u8` or `*mut u8` + /// `*u8` or `&u8` Pointer { - mutability: Option, + ownership: Ownership, inner: Box>, }, - /// `[]u8` or `[]mut u8` + /// `*[u8]` or `&[u8]` Slice { - mutability: Option, + ownership: Ownership, inner: Box>, }, - /// `[5]u8` or `[5]mut u8` + /// `*[u8; 5]` or `&[u8; 5]` Array { - size: Spanned, - mutability: Option, + ownership: Ownership, inner: Box>, + size: Spanned, }, /// `(T, U, V)` or `()` Tuple { @@ -1746,13 +1708,15 @@ pub enum Item { pub_span: Option, path: Box<[Spanned]>, }, - /// `type Name = TypeExpr;` or `type Name = TypeExpr;` — a transparent alias. + /// `type Name = TypeExpr;` or `type Name = TypeExpr;` — a transparent + /// alias. `body` is `None` only for a bodiless `#[intrinsic] type Name;` + /// declaration (primitives). TypeAlias { id: DefId, pub_span: Option, name: Spanned, type_params: Box<[TypeParam]>, - ty: Box>, + body: Option>>, attributes: Box<[Attribute]>, }, } @@ -2781,21 +2745,6 @@ impl<'ctx> Parser<'ctx> { }) } - fn parse_mut_span(&mut self) -> Option { - let token = self.lexer.peek(); - match token.inner { - Token::Identifier - if matches!( - Keyword::try_from(token.span.extract_str(self.source)), - Ok(Keyword::Mut) - ) => - { - Some(self.lexer.next().span) - } - _ => None, - } - } - /// Parse a `::` separated path with optional turbofish type args per segment. /// Returns `Spanned>`. fn parse_path_segments( @@ -2900,20 +2849,15 @@ impl<'ctx> Parser<'ctx> { fn parse_type_expression(&mut self) -> Result, ()> { let token = self.lexer.peek(); match token.inner { - Token::Star => { - let star_span = self.lexer.next().span; - let mutability = self.parse_mut_span(); - let inner = self.parse_type_expression()?; - let span = TextSpan::new(star_span.start, inner.span.end); - Ok(Spanned { - inner: TypeExpression::Pointer { - mutability, - inner: Box::new(inner), - }, - span, - }) + Token::Star | Token::Amper => { + let sigil = self.lexer.next(); + let ownership = if sigil.inner == Token::Star { + Ownership::Exclusive + } else { + Ownership::Shared + }; + self.parse_pointer_type_expression(ownership, sigil.span) } - Token::OpenBracket => self.parse_slice_or_array_type_expression(), Token::Identifier => { let (first_tok, first_sym) = match Keyword::try_from( token.span.extract_str(self.source), @@ -3073,26 +3017,41 @@ impl<'ctx> Parser<'ctx> { } } - fn parse_slice_or_array_type_expression( + /// Parses everything after a leading `*`/`&` sigil: a bare type (`*T`, + /// `&T` → `Pointer`), or a bracketed one (`*[T]`/`&[T]` → `Slice`, + /// `*[T; N]`/`&[T; N]` → `Array`). + fn parse_pointer_type_expression( &mut self, + ownership: Ownership, + sigil_span: TextSpan, ) -> Result, ()> { - let open_span = self.lexer.next().span; - let next = self.lexer.peek(); + if self.lexer.peek().inner != Token::OpenBracket { + let inner = self.parse_type_expression()?; + let span = TextSpan::new(sigil_span.start, inner.span.end); + return Ok(Spanned { + inner: TypeExpression::Pointer { + ownership, + inner: Box::new(inner), + }, + span, + }); + } + + self.lexer.next(); // consume `[` + let inner = self.parse_type_expression()?; + let next = self.lexer.next(); match next.inner { Token::CloseBracket => { - let _close = self.lexer.next(); - let mutability = self.parse_mut_span(); - let inner = self.parse_type_expression()?; - let span = TextSpan::new(open_span.start, inner.span.end); + let span = TextSpan::new(sigil_span.start, next.span.end); Ok(Spanned { inner: TypeExpression::Slice { - mutability, + ownership, inner: Box::new(inner), }, span, }) } - Token::Int => { + Token::SemiColon => { let size_token = self.lexer.next(); let size_value = size_token .span @@ -3110,15 +3069,13 @@ impl<'ctx> Parser<'ctx> { inner: size_value, span: size_token.span, }; - self.next_expect(Token::CloseBracket)?; - let mutability = self.parse_mut_span(); - let inner = self.parse_type_expression()?; - let span = TextSpan::new(open_span.start, inner.span.end); + let close_span = self.next_expect(Token::CloseBracket)?.span; + let span = TextSpan::new(sigil_span.start, close_span.end); Ok(Spanned { inner: TypeExpression::Array { - size, - mutability, + ownership, inner: Box::new(inner), + size, }, span, }) @@ -3635,20 +3592,12 @@ impl<'ctx> Parser<'ctx> { }, span, }), - Token::Amper => { - let mut_span = parser.parse_mut_span(); - let span = TextSpan::new( - object.span.start, - mut_span.map_or(token.span.end, |s| s.end), - ); - Ok(Spanned { - inner: Expression::AddressOf { - value: Box::new(object), - mut_span, - }, - span, - }) - } + Token::Amper => Ok(Spanned { + inner: Expression::AddressOf { + value: Box::new(object), + }, + span, + }), Token::Identifier => { let member_symbol = parser.intern_identifier(token.span); Ok(Spanned { @@ -3767,18 +3716,18 @@ impl<'ctx> Parser<'ctx> { fn parse_int_expression( parser: &mut Parser, ) -> Result, ()> { - fn parse_integer_literal(s: &str) -> Option { + fn parse_integer_literal(s: &str) -> Option { let s = s.replace('_', ""); if let Some(rest) = s.strip_prefix("0b").or_else(|| s.strip_prefix("0B")) { - i64::from_str_radix(rest, 2).ok() + u64::from_str_radix(rest, 2).ok() } else if let Some(rest) = s.strip_prefix("0x").or_else(|| s.strip_prefix("0X")) { - i64::from_str_radix(rest, 16).ok() + u64::from_str_radix(rest, 16).ok() } else { - s.parse::().ok() + s.parse::().ok() } } let token = parser.lexer.next(); @@ -5307,10 +5256,25 @@ impl<'ctx> Parser<'ctx> { Box::new([]) }; - parser.next_expect(Token::Eq)?; - let ty = parser.parse_type_expression()?; + // No `= TypeExpr` body — a bodiless `type Name;` declaration, only + // legal when tagged `#[intrinsic]` (checked in TIR). Used for + // primitives, which have no expressible type-expression right-hand + // side of their own and are never generic, so falling back to + // `name_span` (rather than tracking `type_params`' own end, which + // nothing else in this parser needs either) is exact for every real + // use of this branch. + let body = if parser.lexer.peek().inner == Token::Eq { + parser.lexer.next(); + Some(Box::new(parser.parse_type_expression()?)) + } else { + None + }; - let span = TextSpan::new(type_span.start, ty.span.end); + let end = match &body { + Some(body) => body.span.end, + None => name_span.end, + }; + let span = TextSpan::new(type_span.start, end); Ok(Spanned { inner: Item::TypeAlias { id: parser.id_generator.generate(), @@ -5320,7 +5284,7 @@ impl<'ctx> Parser<'ctx> { span: name_span, }, type_params, - ty: Box::new(ty), + body, attributes: Box::new([]), }, span, diff --git a/crates/wx-compiler/src/ast/tests.rs b/crates/wx-compiler/src/ast/tests.rs index c91b385..2fb7ff9 100644 --- a/crates/wx-compiler/src/ast/tests.rs +++ b/crates/wx-compiler/src/ast/tests.rs @@ -190,8 +190,8 @@ fn test_type_expression_forms() { let case = TestCase::new(indoc! {" struct TypeForms { ptr: *u8, - slice: []u8, - array: [4]u8, + slice: &[u8], + array: &[u8; 4], tuple: (i32, u32), namespaced: math::Number, } @@ -636,58 +636,39 @@ fn test_chained_member_access() { } #[test] -fn test_address_of_immutable() { - // ptr.*.& — immutable address-of; value is Deref, mut_span is None +fn test_address_of() { + // ptr.*.& — address-of; value is Deref. Always produces a shared reference. let case = TestCase::new(indoc! {" - fn f(ptr: *i32) { + fn f(ptr: &i32) { local a = ptr.*.&; } "}); assert!(case.ast.diagnostics.is_empty()); let stmts = function_block(&case.ast, 0); let expr = local_definition_value(stmts, 0); - let Expression::AddressOf { value, mut_span } = expr else { + let Expression::AddressOf { value } = expr else { panic!("expected AddressOf, got {expr:?}"); }; - assert!(mut_span.is_none(), "expected no mut_span"); assert!( matches!(value.inner, Expression::Deref { .. }), "expected Deref as AddressOf operand" ); } -#[test] -fn test_address_of_mutable() { - // ptr.*.&mut — mutable address-of; mut_span is Some - let case = TestCase::new(indoc! {" - fn f(ptr: *mut i32) { - local a = ptr.*.&mut; - } - "}); - assert!(case.ast.diagnostics.is_empty()); - let stmts = function_block(&case.ast, 0); - let expr = local_definition_value(stmts, 0); - let Expression::AddressOf { mut_span, .. } = expr else { - panic!("expected AddressOf, got {expr:?}"); - }; - assert!(mut_span.is_some(), "expected mut_span for .&mut"); -} - #[test] fn test_address_of_through_field() { // ptr.*.field.& — address-of a field: AddressOf > ObjectAccess > Deref let case = TestCase::new(indoc! {" - fn f(ptr: *Point) { + fn f(ptr: &Point) { local a = ptr.*.x.&; } "}); assert!(case.ast.diagnostics.is_empty()); let stmts = function_block(&case.ast, 0); let expr = local_definition_value(stmts, 0); - let Expression::AddressOf { value, mut_span } = expr else { + let Expression::AddressOf { value } = expr else { panic!("expected AddressOf, got {expr:?}"); }; - assert!(mut_span.is_none()); let Expression::ObjectAccess { object, .. } = &value.inner else { panic!("expected ObjectAccess inside AddressOf"); }; diff --git a/crates/wx-compiler/src/codegen/mod.rs b/crates/wx-compiler/src/codegen/mod.rs index 7203fbf..14ad91e 100644 --- a/crates/wx-compiler/src/codegen/mod.rs +++ b/crates/wx-compiler/src/codegen/mod.rs @@ -2,37 +2,9 @@ use std::collections::HashMap; use leb128fmt; +use crate::wasm::{self, ScalarType}; use crate::{ast, mir}; -#[derive(Clone, Copy, PartialEq, Hash, Eq)] -#[cfg_attr(debug_assertions, derive(Debug))] -#[cfg_attr(test, derive(serde::Serialize))] -pub enum ValueType { - I32, - I64, - F32, - F64, -} - -#[derive(Clone, Copy)] -#[cfg_attr(debug_assertions, derive(Debug))] -#[cfg_attr(test, derive(serde::Serialize))] -pub enum BlockResult { - Empty, - SingleValue(ValueType), - MultiValue(SignatureIndex), -} - -#[derive(Debug, Clone, Copy, serde::Serialize)] -pub struct LocalIndex(pub u32); - -#[derive(Clone)] -#[cfg_attr(debug_assertions, derive(Debug))] -#[cfg_attr(test, derive(serde::Serialize))] -pub struct Local { - ty: ValueType, -} - #[derive(Debug, Clone, Copy, serde::Serialize)] pub struct FuncIndex(pub u32); @@ -44,148 +16,19 @@ pub struct GlobalIndex(pub u32); #[derive(Clone, PartialEq, Eq, Hash)] pub struct FunctionSignature { pub param_count: usize, - pub param_results: Box<[ValueType]>, + pub param_results: Box<[ScalarType]>, } impl FunctionSignature { - pub fn params(&self) -> &[ValueType] { + pub fn params(&self) -> &[ScalarType] { self.param_results.get(..self.param_count).unwrap_or(&[]) } - pub fn results(&self) -> &[ValueType] { + pub fn results(&self) -> &[ScalarType] { self.param_results.get(self.param_count..).unwrap_or(&[]) } } -#[derive(Clone)] -#[cfg_attr(debug_assertions, derive(Debug))] -#[cfg_attr(test, derive(serde::Serialize))] -pub enum Expression { - Nop, - I32Const { - value: i32, - }, - I64Const { - value: i64, - }, - F32Const { - value: f32, - }, - F64Const { - value: f64, - }, - LocalGet { - local_index: LocalIndex, - }, - LocalSet { - local_index: LocalIndex, - }, - GlobalGet { - global_index: GlobalIndex, - }, - GlobalSet { - global: GlobalIndex, - }, - Return, - Block { - expressions: Box<[Expression]>, - result: BlockResult, - }, - Break { - depth: u32, - }, - Unreachable, - Loop { - expressions: Box<[Expression]>, - result: BlockResult, - }, - IfElse { - result: BlockResult, - then_branch: Box, - else_branch: Option>, - }, - Drop, - Call { - function: FuncIndex, - }, - CallIndirect { - table_index: TableIndex, - type_index: SignatureIndex, - }, - I32Add, - I32Sub, - I32Mul, - I32DivS, - I32DivU, - I32RemS, - I32RemU, - I32Eq, - I32Ne, - I32And, - I32Or, - I32Xor, - I32Eqz, - I32Shl, - I32ShrS, - I32ShrU, - I32LtS, - I32LtU, - I32GtS, - I32GtU, - I32LeS, - I32LeU, - I32GeS, - I32GeU, - I64Add, - I64Sub, - I64Mul, - I64DivS, - I64DivU, - I64RemS, - I64RemU, - I64Eq, - I64Eqz, - I64Ne, - I64And, - I64Or, - I64Xor, - I64Shl, - I64ShrS, - I64ShrU, - I64LtS, - I64LtU, - I64GtS, - I64GtU, - I64LeS, - I64LeU, - I64GeS, - I64GeU, - F32Add, - F32Sub, - F32Mul, - F64Add, - F64Sub, - F64Mul, - F32Eq, - F64Eq, - F32Ne, - F64Ne, - F32Lt, - F64Lt, - F32Gt, - F64Gt, - F32Le, - F64Le, - F32Ge, - F64Ge, - F32Div, - F64Div, - F32Neg, - F64Neg, - F32Trunc, - F64Trunc, -} - #[cfg_attr(test, derive(serde::Serialize))] pub struct TypeSection { signatures: Box<[FunctionSignature]>, @@ -226,7 +69,7 @@ pub struct ExportSection { #[cfg_attr(test, derive(serde::Serialize))] pub struct FunctionBody { - locals: Box<[Local]>, + locals: Box<[wasm::Local]>, expressions: Box<[u8]>, } @@ -284,9 +127,11 @@ pub enum Mutability { #[cfg_attr(test, derive(serde::Serialize))] struct Global { - ty: ValueType, + ty: ScalarType, mutability: Mutability, - value: Expression, + /// Only the four `*Const` variants of `wasm::Instruction` are valid WASM + /// global init expressions; anything else is a construction bug upstream. + value: wasm::Instruction, } #[derive(Clone)] @@ -296,7 +141,7 @@ pub enum ImportDesc { signature_index: SignatureIndex, }, Global { - ty: ValueType, + ty: ScalarType, mutability: Mutability, }, Memory { @@ -365,50 +210,7 @@ pub struct Builder { signatures: HashMap, } -impl TryFrom for ValueType { - type Error = (); - - fn try_from(value: mir::Type) -> Result { - match value { - mir::Type::Bool - | mir::Type::I8 - | mir::Type::U8 - | mir::Type::I16 - | mir::Type::U16 - | mir::Type::I32 - | mir::Type::U32 - | mir::Type::Function { .. } => Ok(ValueType::I32), - mir::Type::I64 | mir::Type::U64 => Ok(ValueType::I64), - mir::Type::Pointer { kind, .. } => match kind { - mir::MemoryKind::Memory32 => Ok(ValueType::I32), - mir::MemoryKind::Memory64 => Ok(ValueType::I64), - }, - mir::Type::F32 => Ok(ValueType::F32), - mir::Type::F64 => Ok(ValueType::F64), - _ => unreachable!(), - } - } -} - impl Builder { - /// Recursively expand a MIR type into its flat wasm `ValueType`s. - /// Unit/Never produce zero slots; Aggregate recurses into its fields. - fn flatten_type( - ty: mir::Type, - aggregates: &[mir::Aggregate], - ) -> Vec { - match ty { - mir::Type::Unit | mir::Type::Never => vec![], - mir::Type::Aggregate { aggregate_index } => aggregates - [aggregate_index as usize] - .values - .iter() - .flat_map(|&f| Self::flatten_type(f, aggregates)) - .collect(), - t => vec![ValueType::try_from(t).unwrap()], - } - } - /// Intern a function signature built from a MIR signature + the aggregate /// pool, correctly flattening any aggregate params/results into /// individual wasm types. @@ -419,10 +221,12 @@ impl Builder { ) -> SignatureIndex { let mut param_results = Vec::new(); for ¶m in sig.params() { - param_results.extend(Self::flatten_type(param, aggregates)); + param_results + .extend(wasm::flatten_type_to_scalars(param, aggregates)); } let param_count = param_results.len(); - param_results.extend(Self::flatten_type(sig.result(), aggregates)); + param_results + .extend(wasm::flatten_type_to_scalars(sig.result(), aggregates)); let signature = FunctionSignature { param_count, param_results: param_results.into_boxed_slice(), @@ -523,7 +327,7 @@ impl Builder { module: import_module.name.clone(), name: interner.resolve(*name).unwrap().to_string(), desc: ImportDesc::Global { - ty: ValueType::I32, + ty: ScalarType::I32, mutability: Mutability::Immutable, }, }); @@ -605,24 +409,24 @@ impl Builder { .map(|global| { let init_value = match ( global.const_init, - ValueType::try_from(global.ty).unwrap(), + ScalarType::try_from(global.ty).unwrap(), ) { - (mir::ConstInit::Int(v), ValueType::I32) => { - Expression::I32Const { value: v as i32 } + (mir::ConstInit::Int(v), ScalarType::I32) => { + wasm::Instruction::I32Const(v as i32) } - (mir::ConstInit::Int(v), ValueType::I64) => { - Expression::I64Const { value: v } + (mir::ConstInit::Int(v), ScalarType::I64) => { + wasm::Instruction::I64Const(v) } - (mir::ConstInit::Float(v), ValueType::F32) => { - Expression::F32Const { value: v as f32 } + (mir::ConstInit::Float(v), ScalarType::F32) => { + wasm::Instruction::F32Const(v as f32) } - (mir::ConstInit::Float(v), ValueType::F64) => { - Expression::F64Const { value: v } + (mir::ConstInit::Float(v), ScalarType::F64) => { + wasm::Instruction::F64Const(v) } _ => unreachable!(), }; Global { - ty: ValueType::try_from(global.ty).unwrap(), + ty: ScalarType::try_from(global.ty).unwrap(), mutability: match global.mutability { mir::Mutability::Mutable => Mutability::Mutable, mir::Mutability::Immutable => Mutability::Immutable, @@ -735,27 +539,27 @@ impl Builder { }) } - /// Encode a [`scheduler::ScheduledFunction`] into a [`FunctionBody`]. + /// Encode a [`wasm::Function`] into a [`FunctionBody`]. /// /// All index resolution (function WASM indices, global WASM indices, string /// byte offsets, data section end) is performed here using the maps and /// pools already built on `self`. fn encode_scheduled( &mut self, - scheduled: &crate::opt::scheduler::ScheduledFunction, + scheduled: &wasm::Function, mir: &mir::MIR, ) -> FunctionBody { - let locals: Box<[Local]> = scheduled - .locals - .iter() - .map(|l| Local { - ty: ValueType::from(l.ty), - }) - .collect(); + let locals: Box<[wasm::Local]> = + scheduled.locals.iter().copied().collect(); let mut sink = Vec::new(); for instr in scheduled.body.iter().cloned() { - self.encode_scheduled_instr(instr, mir, &mut sink); + self.encode_scheduled_instr( + instr, + mir, + &scheduled.br_table_depths, + &mut sink, + ); } FunctionBody { @@ -766,11 +570,12 @@ impl Builder { fn encode_scheduled_instr( &mut self, - instr: crate::opt::scheduler::Instruction, + instr: wasm::Instruction, mir: &mir::MIR, + br_table_depths: &[u32], sink: &mut Vec, ) { - use crate::opt::scheduler::Instruction as SI; + use wasm::Instruction as SI; match instr { SI::I32Const(v) => { sink.push(Instruction::I32Const as u8); @@ -869,6 +674,7 @@ impl Builder { SI::F32Abs => sink.push(Instruction::F32Abs as u8), SI::F32Floor => sink.push(Instruction::F32Floor as u8), SI::F32Ceil => sink.push(Instruction::F32Ceil as u8), + SI::F32Trunc => sink.push(Instruction::F32Trunc as u8), SI::F64Add => sink.push(Instruction::F64Add as u8), SI::F64Sub => sink.push(Instruction::F64Sub as u8), SI::F64Mul => sink.push(Instruction::F64Mul as u8), @@ -878,6 +684,7 @@ impl Builder { SI::F64Abs => sink.push(Instruction::F64Abs as u8), SI::F64Floor => sink.push(Instruction::F64Floor as u8), SI::F64Ceil => sink.push(Instruction::F64Ceil as u8), + SI::F64Trunc => sink.push(Instruction::F64Trunc as u8), SI::F32Eq => sink.push(Instruction::F32Eq as u8), SI::F32Ne => sink.push(Instruction::F32Ne as u8), SI::F32Lt => sink.push(Instruction::F32Lt as u8), @@ -912,13 +719,16 @@ impl Builder { sink.push(Instruction::BrIf as u8); depth.encode(sink); } - SI::BrTable(depths) => { + SI::BrTable { start, len } => { sink.push(Instruction::BrTable as u8); // WASM's `br_table` encodes as `vec(labelidx) labelidx` — a // table of length `depths.len() - 1` followed by the // default depth as a separate trailing immediate. The - // scheduler folds both into one slice (its trailing element - // *is* the default) since both stages need the same split. + // scheduler folds both into one `[start, start+len)` range + // into `br_table_depths` (its trailing element *is* the + // default) since both stages need the same split. + let depths = + &br_table_depths[start as usize..(start + len) as usize]; let (default_depth, table) = depths.split_last().expect("BrTable is never empty"); (table.len() as u32).encode(sink); @@ -1132,14 +942,10 @@ impl Builder { } } - fn encode_block_type( - ty: crate::opt::scheduler::BlockType, - sink: &mut Vec, - ) { - use crate::opt::scheduler::BlockType; + fn encode_block_type(ty: wasm::BlockType, sink: &mut Vec) { match ty { - BlockType::Empty => sink.push(0x40), - BlockType::Value(vt) => vt.encode(sink), + wasm::BlockType::Empty => sink.push(0x40), + wasm::BlockType::Value(vt) => vt.encode(sink), } } } @@ -1441,31 +1247,19 @@ impl Encode for u32 { } } -impl Encode for ValueType { +impl Encode for ScalarType { fn encode(&self, sink: &mut Vec) { let opcode = match self { - ValueType::I32 => 0x7F, - ValueType::I64 => 0x7E, - ValueType::F32 => 0x7D, - ValueType::F64 => 0x7C, + ScalarType::I32 => 0x7F, + ScalarType::I64 => 0x7E, + ScalarType::F32 => 0x7D, + ScalarType::F64 => 0x7C, }; sink.push(opcode); } } -impl Encode for BlockResult { - fn encode(&self, sink: &mut Vec) { - match self { - BlockResult::Empty => sink.push(0x40), - BlockResult::SingleValue(ty) => ty.encode(sink), - // Multi-value block types are encoded as a type-section index (s33). - // Type indices are always small positive integers, so s33 == u32 LEB128. - BlockResult::MultiValue(idx) => idx.0.encode(sink), - } - } -} - impl Encode for FunctionSignature { fn encode(&self, sink: &mut Vec) { sink.push(0x60); // Function type @@ -1616,19 +1410,19 @@ impl Encode for Global { }); match self.value { - Expression::I32Const { value } => { + wasm::Instruction::I32Const(value) => { sink.push(Instruction::I32Const as u8); value.encode(sink); } - Expression::F32Const { value } => { + wasm::Instruction::F32Const(value) => { sink.push(Instruction::F32Const as u8); value.encode(sink); } - Expression::I64Const { value } => { + wasm::Instruction::I64Const(value) => { sink.push(Instruction::I64Const as u8); value.encode(sink); } - Expression::F64Const { value } => { + wasm::Instruction::F64Const(value) => { sink.push(Instruction::F64Const as u8); value.encode(sink); } @@ -1678,7 +1472,7 @@ impl FunctionBody { let type_index = module.functions.types[func_index.0 as usize]; let func_type = module.types.signatures[type_index.0 as usize].clone(); - let mut grouped_locals = Vec::<(ValueType, u32)>::new(); + let mut grouped_locals = Vec::<(ScalarType, u32)>::new(); for local in self.locals.iter().skip(func_type.param_count) { match grouped_locals.last_mut() { Some((last_ty, count)) if *last_ty == local.ty => { diff --git a/crates/wx-compiler/src/codegen/tests.rs b/crates/wx-compiler/src/codegen/tests.rs index 4d37a62..fb00984 100644 --- a/crates/wx-compiler/src/codegen/tests.rs +++ b/crates/wx-compiler/src/codegen/tests.rs @@ -356,16 +356,16 @@ fn test_loop_copy_does_not_alias_locals_across_iterations() { struct BumpAllocator {} impl Allocator for BumpAllocator { type Mem = heap; - fn reserve(self: heap::*mut Self, layout: Layout) -> heap::*mut u8 { + fn reserve(self: heap::*Self, layout: Layout) -> heap::*u8 { local ptr = (bump as u32 + layout.align - 1) / layout.align * layout.align; local new_end = ptr + layout.size; bump = new_end as heap::*u8; - ptr as heap::*mut u8 + ptr as heap::*u8 } } fn copy4() { - local alloc: heap::*mut BumpAllocator = ptr::null_mut(); + local alloc: heap::*BumpAllocator = ptr::null_mut(); local arr = alloc.alloc_slice::(4); arr[0] = 10; arr[1] = 20; @@ -681,7 +681,7 @@ fn test_imports() { memory heap: Memory where { Size = u32 }; import \"console\" as console { - fn log(value: []u8) -> (); + fn log(value: &[u8]) -> (); } fn main() { @@ -738,7 +738,7 @@ fn test_dead_function_strings_excluded_from_data_section() { memory heap: Memory where { Size = u32 }; import \"env\" as env { - fn log(message: []u8); + fn log(message: &[u8]); } fn live_fn() { @@ -845,6 +845,45 @@ fn test_global_init_block_with_locals_executes() { assert_eq!(get.call(&mut store, ()).unwrap(), 12); } +#[test] +fn test_global_init_multiple_globals_with_own_locals_executes() { + // Two globals, each declaring its own locals in its initializer block — + // each becomes a self-contained `Block` value of its own `GlobalSet`, + // processed via the same clone-then-discard mechanism that makes + // if/else branches safe, so their scopes sharing a flat offset (both are + // children of the start function's shared root) is harmless: nothing + // here mutates a shared, uncloned bindings vector across globals the + // way `mir::inlining::inline_call`'s old design used to across inlined + // calls. + let case = TestCase::new(indoc! {" + global mut x: i32 = { + local a = 3 as i32; + local b = 4 as i32; + a * b + } + global mut y: i32 = { + local c = 10 as i32; + local d = 20 as i32; + c + d + } + fn get_x() -> i32 { x } + fn get_y() -> i32 { y } + export { get_x, get_y } + "}); + let engine = wasmtime::Engine::default(); + let module = wasmtime::Module::new(&engine, &case.bytecode).unwrap(); + let mut store = wasmtime::Store::new(&engine, ()); + let instance = wasmtime::Instance::new(&mut store, &module, &[]).unwrap(); + let get_x = instance + .get_typed_func::<(), i32>(&mut store, "get_x") + .unwrap(); + let get_y = instance + .get_typed_func::<(), i32>(&mut store, "get_y") + .unwrap(); + assert_eq!(get_x.call(&mut store, ()).unwrap(), 12); + assert_eq!(get_y.call(&mut store, ()).unwrap(), 30); +} + #[test] fn test_global_init_multiple_sequential_executes() { // g2 is declared after g1: when g2's initializer runs, g1 already holds 10. @@ -934,14 +973,14 @@ fn test_global_init_if_expression_executes() { #[test] fn test_global_init_generic_null_pointer_executes() { - // global mut head: heap::*Node = ptr::null() - // null() is a generic function: null() -> M::*T + // global mut head: heap::&Node = ptr::null() + // null() is a generic function: null() -> M::&T // Type params must be inferred from the global's declared type. let case = TestCase::new(indoc! {" #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 } struct Node { x: i32 } - global mut head: heap::*Node = ptr::null() + global mut head: heap::&Node = ptr::null() fn get_head() -> u32 { head as u32 } export { get_head } "}); @@ -1289,6 +1328,62 @@ fn test_trait_default_method() { assert_eq!(run.call(&mut store, ()).unwrap(), 42); } +#[test] +fn test_trait_method_with_own_type_param_called_through_generic_bound() { + // Regression test: `Consumer::consume`'s body calls + // `w.write(1)`, where `write` is an *abstract* trait + // method that itself declares its own type param (`Mem`), dispatched + // on a value (`w: Mem::*W`) whose type is `consume`'s own generic + // bound `W`, not `Self`. Once `Consumer::consume` is monomorphized + // (`Mem = heap`, `W = Counter`), MIR's abstract-dispatch lowering + // previously conflated "the impl block has no type params of its own" + // (true here — `impl Writer for Counter` isn't generic) with "the + // impl's copy of the method has no type params of its own" (false — + // `write` still has `Mem`), reusing `write`'s bare, never-lowered TIR id + // instead of monomorphizing it. That produced a `Call` referencing a + // function with no wasm index, panicking in codegen + // (`self.func_wasm_index[&id]`) rather than compiling cleanly — this + // test only needs to build without panicking, not actually run. + let _case = TestCase::new(indoc! {" + trait Writer { + fn write(self: Mem::*Self, byte: u8); + } + + struct Counter { + value: u8, + } + + impl Writer for Counter { + fn write(self: Mem::*Self, byte: u8) { + self.*.value = byte; + } + } + + trait Consumer { + fn consume(self: Mem::&Self, w: Mem::*W); + } + + impl Consumer for i32 { + fn consume(self: Mem::&Self, w: Mem::*W) { + w.write(1); + } + } + + memory heap: Memory where { Size = u32 }; + + fn run() { + local value_ptr: heap::&i32 = ptr::null(); + local counter_ptr: heap::*Counter = ptr::null_mut(); + value_ptr.consume::(counter_ptr); + } + + export { + heap as \"memory\", + run, + } + "}); +} + #[test] fn test_tuple_roundtrip() { // Execution test: swap(3, 7) must return (7, 3). @@ -1507,11 +1602,11 @@ fn test_pointer_deref_load_and_store() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; - fn read(ptr: heap::*i32) -> i32 { + fn read(ptr: heap::&i32) -> i32 { ptr.* } - fn write(ptr: heap::*mut i32, val: i32) { + fn write(ptr: heap::*i32, val: i32) { ptr.* = val } @@ -1553,7 +1648,7 @@ fn test_pointer_deref_increment() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 } - fn increment(ptr: heap::*mut i32) { + fn increment(ptr: heap::*i32) { ptr.* += 1 } @@ -1608,16 +1703,16 @@ fn test_struct_pointer_load_and_store() { y: i32, } - fn store_point(ptr: heap::*mut Point, x: i32, y: i32) { + fn store_point(ptr: heap::*Point, x: i32, y: i32) { ptr.* = Point::{ x: x, y: y } } - fn load_x(ptr: heap::*Point) -> i32 { + fn load_x(ptr: heap::&Point) -> i32 { local p: Point = ptr.*; p.x } - fn load_y(ptr: heap::*Point) -> i32 { + fn load_y(ptr: heap::&Point) -> i32 { local p: Point = ptr.*; p.y } @@ -1758,15 +1853,15 @@ fn test_nested_struct_pointer_store_and_load() { #[fixed_order] struct Top { flag: u8, mid: Mid } - fn store_nested_literal(p: heap::*mut Top) { + fn store_nested_literal(p: heap::*Top) { p.* = Top::{ flag: 1, mid: Mid::{ tag: 2, deep: Deep::{ id: 3 } } }; } - fn read_deep_id(p: heap::*Top) -> u64 { + fn read_deep_id(p: heap::&Top) -> u64 { p.*.mid.deep.id } - fn write_deep_id(p: heap::*mut Top, v: u64) { + fn write_deep_id(p: heap::*Top, v: u64) { p.*.mid.deep.id = v; } @@ -1859,10 +1954,10 @@ fn test_struct_field_write_through_pointer() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 } struct Point { x: i32, y: i32 } - fn set_x(ptr: heap::*mut Point, v: i32) { ptr.*.x = v } - fn set_y(ptr: heap::*mut Point, v: i32) { ptr.*.y = v } - fn get_x(ptr: heap::*Point) -> i32 { ptr.*.x } - fn get_y(ptr: heap::*Point) -> i32 { ptr.*.y } + fn set_x(ptr: heap::*Point, v: i32) { ptr.*.x = v } + fn set_y(ptr: heap::*Point, v: i32) { ptr.*.y = v } + fn get_x(ptr: heap::&Point) -> i32 { ptr.*.x } + fn get_y(ptr: heap::&Point) -> i32 { ptr.*.y } export { heap, set_x, set_y, get_x, get_y } "}); let engine = wasmtime::Engine::default(); @@ -2140,7 +2235,7 @@ fn test_generic_struct_chained_calls() { #[test] fn test_generic_struct_pointer_load_store() { - // Memory load/store via a pointer to a generic struct `heap::*Point`. + // Memory load/store via a pointer to a generic struct `heap::&Point`. // Codegen must emit the correct field offsets for the monomorphized aggregate // (x@0, y@4), going through the same path as the non-generic pointer tests. let case = TestCase::new(indoc! {" @@ -2152,16 +2247,16 @@ fn test_generic_struct_pointer_load_store() { y: T, } - fn store_pt(ptr: heap::*mut Point, x: i32, y: i32) { + fn store_pt(ptr: heap::*Point, x: i32, y: i32) { ptr.* = Point::{ x, y } } - fn load_x(ptr: heap::*Point) -> i32 { + fn load_x(ptr: heap::&Point) -> i32 { local p = ptr.*; p.x } - fn load_y(ptr: heap::*Point) -> i32 { + fn load_y(ptr: heap::&Point) -> i32 { local p = ptr.*; p.y } @@ -2303,7 +2398,7 @@ fn test_array_literal_read_by_index() { memory heap: Memory where { Size = u32 }; fn get(i: u32) -> i32 { - local arr: heap::[4]i32 = [10, 20, 30, 40]; + local arr: heap::&[i32; 4] = [10, 20, 30, 40]; arr[i] } @@ -2333,8 +2428,8 @@ fn test_array_write_and_read_back() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; - fn write(arr: [4]mut i32, i: u32, v: i32) { arr[i] = v; } - fn read(arr: [4]i32, i: u32) -> i32 { arr[i] } + fn write(arr: *[i32; 4], i: u32, v: i32) { arr[i] = v; } + fn read(arr: &[i32; 4], i: u32) -> i32 { arr[i] } export { heap, write, read } "}); @@ -2384,7 +2479,7 @@ fn test_dead_array_excluded_from_data_section() { fn live() -> i32 { 42 } fn dead() -> i32 { - local arr: [3]i32 = [0xDE, 0xAD, 0xBE]; + local arr: &[i32; 3] = [0xDE, 0xAD, 0xBE]; arr[0] } @@ -2408,7 +2503,7 @@ fn test_array_index_wat() { memory heap: Memory where { Size = u32 }; fn get(i: u32) -> i32 { - local arr: [4]i32 = [10, 20, 30, 40]; + local arr: &[i32; 4] = [10, 20, 30, 40]; arr[i] } @@ -2442,19 +2537,19 @@ fn test_slice_range_wat() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; - fn full_copy(s: heap::[]i32) -> heap::[]i32 { + fn full_copy(s: heap::&[i32]) -> heap::&[i32] { s[..] } - fn to_limit(s: heap::[]i32, to: u32) -> heap::[]i32 { + fn to_limit(s: heap::&[i32], to: u32) -> heap::&[i32] { s[..to] } - fn from_start(s: heap::[]i32, from: u32) -> heap::[]i32 { + fn from_start(s: heap::&[i32], from: u32) -> heap::&[i32] { s[from..] } - fn bounded(s: heap::[]i32, from: u32, to: u32) -> heap::[]i32 { + fn bounded(s: heap::&[i32], from: u32, to: u32) -> heap::&[i32] { s[from..to] } @@ -2475,11 +2570,11 @@ fn test_slice_range_array_wat() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; - fn full_array(arr: heap::[4]i32) -> heap::[]i32 { + fn full_array(arr: heap::&[i32; 4]) -> heap::&[i32] { arr[..] } - fn partial_array(arr: heap::[4]i32, i: u32, n: u32) -> heap::[]i32 { + fn partial_array(arr: heap::&[i32; 4], i: u32, n: u32) -> heap::&[i32] { arr[i..n] } @@ -2499,9 +2594,9 @@ fn test_narrow_pointer_deref_sign_extension_and_byte_isolation() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; - fn read_u8(ptr: heap::*u8) -> u8 { ptr.* } - fn read_i8(ptr: heap::*i8) -> i8 { ptr.* } - fn write_u8(ptr: heap::*mut u8, val: u8) { ptr.* = val } + fn read_u8(ptr: heap::&u8) -> u8 { ptr.* } + fn read_i8(ptr: heap::&i8) -> i8 { ptr.* } + fn write_u8(ptr: heap::*u8, val: u8) { ptr.* = val } export { heap, read_u8, read_i8, write_u8 } "}); @@ -2636,10 +2731,10 @@ fn test_null_pointer_comparison() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; - struct Node { value: i32, next: *Node } + struct Node { value: i32, next: &Node } - fn make_null() -> *Node { ptr::null() } - fn is_null_ptr(p: *Node) -> bool { p == ptr::null() } + fn make_null() -> &Node { ptr::null() } + fn is_null_ptr(p: &Node) -> bool { p == ptr::null() } fn ptr_from_addr() -> *Node { 4 as heap::*Node } export { heap, make_null, is_null_ptr, ptr_from_addr } @@ -2744,7 +2839,7 @@ fn test_check_wad_magic_wat() { let case = TestCase::new(indoc! {" #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; - pub fn check_wad_magic(data: heap::[]u8) -> bool { + pub fn check_wad_magic(data: heap::&[u8]) -> bool { data[0] == 0x49 && data[1] == 0x57 && data[2] == 0x41 @@ -2764,11 +2859,11 @@ fn test_constant_index_offset_folding_wat() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; fn get_arr() -> i32 { - local arr: [4]i32 = [10, 20, 30, 40]; + local arr: &[i32; 4] = [10, 20, 30, 40]; arr[2] } - fn get_slice(s: heap::[]i32) -> i32 { + fn get_slice(s: heap::&[i32]) -> i32 { s[3] } @@ -2777,19 +2872,18 @@ fn test_constant_index_offset_folding_wat() { insta::assert_snapshot!(wasmprinter::print_bytes(&case.bytecode).unwrap()); } -// ── AddressOf (.& / .&mut) +// ── AddressOf (.&) // ─────────────────────────────────────────────────────────── #[test] fn test_address_of_array_element() { - // `arr[i].&mut` on a mutable heap array returns a *mut pointer to element i. - // The byte address must equal base + i * elem_size; writing through the - // returned pointer must update the correct memory slot. + // `arr[i].&` on a heap array returns a shared reference to element i. + // The byte address must equal base + i * elem_size. let case = TestCase::new(indoc! {" #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 } - fn elem_ptr(arr: heap::[4]mut i32, i: u32) -> heap::*mut i32 { - arr[i].&mut + fn elem_ptr(arr: heap::&[i32; 4], i: u32) -> heap::&i32 { + arr[i].& } export { heap, elem_ptr } @@ -2830,8 +2924,8 @@ fn test_address_of_struct_field() { memory heap: Memory where { Size = u32 } struct Point { x: i32, y: i32 } - fn x_addr(ptr: heap::*Point) -> heap::*i32 { ptr.*.x.& } - fn y_addr(ptr: heap::*Point) -> heap::*i32 { ptr.*.y.& } + fn x_addr(ptr: heap::&Point) -> heap::&i32 { ptr.*.x.& } + fn y_addr(ptr: heap::&Point) -> heap::&i32 { ptr.*.y.& } export { heap, x_addr, y_addr } "}); @@ -2874,7 +2968,7 @@ fn test_narrow_field_cast_does_not_overread_adjacent_bytes() { memory heap: Memory where { Size = u32 } struct S { a: u8, b: u64, c: u16 } - fn read_c(p: heap::*S) -> u32 { p.*.c as u32 } + fn read_c(p: heap::&S) -> u32 { p.*.c as u32 } export { heap, read_c } "}); @@ -2916,9 +3010,9 @@ fn test_address_of_wat() { memory heap: Memory where { Size = u32 } struct Point { x: i32, y: i32 } - fn elem_ptr(arr: heap::[4]i32, i: u32) -> heap::*i32 { arr[i].& } - fn x_addr(ptr: heap::*Point) -> heap::*i32 { ptr.*.x.& } - fn y_addr(ptr: heap::*Point) -> heap::*i32 { ptr.*.y.& } + fn elem_ptr(arr: heap::&[i32; 4], i: u32) -> heap::&i32 { arr[i].& } + fn x_addr(ptr: heap::&Point) -> heap::&i32 { ptr.*.x.& } + fn y_addr(ptr: heap::&Point) -> heap::&i32 { ptr.*.y.& } export { heap, elem_ptr, x_addr, y_addr } "}); @@ -2936,7 +3030,7 @@ fn test_memory64_pointer_roundtrip() { let case = TestCase::new(indoc! {" #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u64 }; - fn store_load(p: heap::*mut u64) -> u64 { + fn store_load(p: heap::*u64) -> u64 { p.* = 7; p.* } @@ -2968,8 +3062,8 @@ fn test_memory64_size_grow_and_static_data() { memory heap: Memory where { Size = u64 }; fn size_pages() -> u64 { heap.size() } fn grow_one() -> i64 { heap.grow(1) } - fn msg() -> heap::[]u8 { \"hello\" } - fn data_end() -> heap::*u8 { heap::DATA_END } + fn msg() -> heap::&[u8] { \"hello\" } + fn data_end() -> heap::&u8 { heap::DATA_END } export { size_pages, grow_one, msg, data_end } "}); @@ -3018,10 +3112,10 @@ fn test_multi_memory_static_data() { memory first: Memory where { Size = u32 }; #[memory_limits(min_pages = 1)] memory second: Memory where { Size = u32 }; - fn greet_first() -> first::[]u8 { \"hello\" } - fn greet_second() -> second::[]u8 { \"world!!\" } - fn end_first() -> first::*u8 { first::DATA_END } - fn end_second() -> second::*u8 { second::DATA_END } + fn greet_first() -> first::&[u8] { \"hello\" } + fn greet_second() -> second::&[u8] { \"world!!\" } + fn end_first() -> first::&u8 { first::DATA_END } + fn end_second() -> second::&u8 { second::DATA_END } export { first, @@ -3252,7 +3346,7 @@ fn test_match_inside_loop_break_and_continue_commit_mutations() { fn test_match_enum_dispatch_runs_correctly() { let case = TestCase::new(indoc! {" enum FileDescriptor: u8 { - StdIn, + StdIn = 0, StdOut, StdErr, } @@ -3616,3 +3710,189 @@ fn test_pure_value_shared_via_reassignment_across_if_else_branches() { // else: m=10, side_dist=11, step=1 -> 1101 assert_eq!(f.call(&mut store, (0, 5)).unwrap(), 1101); } + +// ── struct operator-trait impls +// ────────────────────────────────────────── +// +// Every operator-overload execution test above (`test_arithmetic_operations`, +// `test_compound_assignment_operators`, ...) exercises a primitive, whose +// `impl Add`/etc. in `std/main.wx` is what every one of them silently relies +// on. None of them actually implement an operator trait for a *user* +// struct — the entire motivating use case (`Vec2 + Vec2`) had never been +// run end to end through TIR, MIR, codegen, and a real wasmtime execution +// before this section. Struct fields stay `i32` so the multi-value ABI +// (`test_struct_returned_from_call`'s "flatten to params/results" pattern) +// is exercised the same way it already is for non-operator struct tests. + +#[test] +fn test_struct_operator_overload_add_wasmtime() { + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + fn run(ax: i32, ay: i32, bx: i32, by: i32) -> i32 { + local a = Vec2::{ x: ax, y: ay }; + local b = Vec2::{ x: bx, y: by }; + local c = a + b; + c.x + c.y + } + + export { run } + "}); + + let engine = wasmtime::Engine::default(); + let module = wasmtime::Module::new(&engine, &case.bytecode).unwrap(); + let mut store = wasmtime::Store::new(&engine, ()); + let instance = wasmtime::Instance::new(&mut store, &module, &[]).unwrap(); + let run = instance + .get_typed_func::<(i32, i32, i32, i32), i32>(&mut store, "run") + .unwrap(); + + // (3+10) + (4+20) = 37 + assert_eq!(run.call(&mut store, (3, 4, 10, 20)).unwrap(), 37); + // (-5+2) + (7+-9) = -5 + assert_eq!(run.call(&mut store, (-5, 7, 2, -9)).unwrap(), -5); +} + +#[test] +fn test_struct_operator_overload_arithmetic_ops_wasmtime() { + // `#[inline]`, matching every primitive impl's own convention — verifies + // operator-overload methods on a struct participate correctly in the + // inlining pass too, not just the un-inlined `Call` path above. + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + impl Sub for Vec2 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x - rhs.x, y: self.y - rhs.y } + } + } + + impl Mul for Vec2 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x * rhs.x, y: self.y * rhs.y } + } + } + + fn run_add(ax: i32, ay: i32, bx: i32, by: i32) -> i32 { + local c = Vec2::{ x: ax, y: ay } + Vec2::{ x: bx, y: by }; + c.x + c.y + } + + fn run_sub(ax: i32, ay: i32, bx: i32, by: i32) -> i32 { + local c = Vec2::{ x: ax, y: ay } - Vec2::{ x: bx, y: by }; + c.x + c.y + } + + fn run_mul(ax: i32, ay: i32, bx: i32, by: i32) -> i32 { + local c = Vec2::{ x: ax, y: ay } * Vec2::{ x: bx, y: by }; + c.x + c.y + } + + export { run_add, run_sub, run_mul } + "}); + + let engine = wasmtime::Engine::default(); + let module = wasmtime::Module::new(&engine, &case.bytecode).unwrap(); + let mut store = wasmtime::Store::new(&engine, ()); + let instance = wasmtime::Instance::new(&mut store, &module, &[]).unwrap(); + + let run_add = instance + .get_typed_func::<(i32, i32, i32, i32), i32>(&mut store, "run_add") + .unwrap(); + // (3+10) + (4+20) = 37 + assert_eq!(run_add.call(&mut store, (3, 4, 10, 20)).unwrap(), 37); + + let run_sub = instance + .get_typed_func::<(i32, i32, i32, i32), i32>(&mut store, "run_sub") + .unwrap(); + // (10-3) + (20-4) = 23 + assert_eq!(run_sub.call(&mut store, (10, 20, 3, 4)).unwrap(), 23); + + let run_mul = instance + .get_typed_func::<(i32, i32, i32, i32), i32>(&mut store, "run_mul") + .unwrap(); + // (3*2) + (4*5) = 26 + assert_eq!(run_mul.call(&mut store, (3, 4, 2, 5)).unwrap(), 26); +} + +#[test] +fn test_struct_operator_overload_neg_wasmtime() { + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Neg for Vec2 { + fn neg(self: Self) -> Self { + Vec2::{ x: -self.x, y: -self.y } + } + } + + fn run(ax: i32, ay: i32) -> i32 { + local a = Vec2::{ x: ax, y: ay }; + local b = -a; + b.x + b.y + } + + export { run } + "}); + + let engine = wasmtime::Engine::default(); + let module = wasmtime::Module::new(&engine, &case.bytecode).unwrap(); + let mut store = wasmtime::Store::new(&engine, ()); + let instance = wasmtime::Instance::new(&mut store, &module, &[]).unwrap(); + let run = instance + .get_typed_func::<(i32, i32), i32>(&mut store, "run") + .unwrap(); + + assert_eq!(run.call(&mut store, (3, -4)).unwrap(), 1); // -3 + 4 + assert_eq!(run.call(&mut store, (0, 5)).unwrap(), -5); // 0 + -5 +} + +#[test] +fn test_struct_operator_overload_compound_assignment_wasmtime() { + // `+=` on a struct, going through the newly rebuilt `CompoundAssign` + // lowering (see the compound-assignment devlogs) rather than the plain + // `Add` dispatch the other tests above exercise. + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + fn run(ax: i32, ay: i32, bx: i32, by: i32) -> i32 { + local mut a = Vec2::{ x: ax, y: ay }; + a += Vec2::{ x: bx, y: by }; + a.x + a.y + } + + export { run } + "}); + + let engine = wasmtime::Engine::default(); + let module = wasmtime::Module::new(&engine, &case.bytecode).unwrap(); + let mut store = wasmtime::Store::new(&engine, ()); + let instance = wasmtime::Instance::new(&mut store, &module, &[]).unwrap(); + let run = instance + .get_typed_func::<(i32, i32, i32, i32), i32>(&mut store, "run") + .unwrap(); + + // (3+10) + (4+20) = 37 + assert_eq!(run.call(&mut store, (3, 4, 10, 20)).unwrap(), 37); +} diff --git a/crates/wx-compiler/src/lib.rs b/crates/wx-compiler/src/lib.rs index 5ed6e17..41dd207 100644 --- a/crates/wx-compiler/src/lib.rs +++ b/crates/wx-compiler/src/lib.rs @@ -6,3 +6,4 @@ pub mod opt; pub mod testing; pub mod tir; pub mod vfs; +pub mod wasm; diff --git a/crates/wx-compiler/src/mir/inlining.rs b/crates/wx-compiler/src/mir/inlining.rs index d0dc85b..7d02bf1 100644 --- a/crates/wx-compiler/src/mir/inlining.rs +++ b/crates/wx-compiler/src/mir/inlining.rs @@ -4,51 +4,124 @@ use crate::ast; use crate::mir::*; use crate::tir; -/// Holds the two fixed parameters of a scope-rebase pass so the recursive -/// walk doesn't need to thread them through every call. +/// Offsets every scope index in `expr` by `scope_offset` (in place), and +/// rewrites `Return { value }` into `Break { scope_index: wrapper_scope, +/// value }`. Used for combining multiple globals' own scope trees into one +/// synthesized start function (`mir::MIR::build_start_function`) — a plain +/// uniform shift, no root-scope redirect needed, since each global's own +/// root scope becomes a genuinely new, disjoint scope of its own rather +/// than dissolving into an existing one. Implemented as the no-redirect +/// case of `Rebaser` (`root_scope: scope_offset, root_bias: 0` — redirecting +/// scope `0` to exactly where a plain `+= scope_offset` shift would already +/// send it) rather than a second, separately-maintained walk. +pub(super) fn rebase_scope( + expr: &mut Expression, + scope_offset: ScopeIndex, + wrapper_scope: ScopeIndex, +) { + Rebaser { + scope_offset, + wrapper_scope, + root_scope: scope_offset, + root_bias: 0, + } + .rebase(expr); +} + +/// Rewrites scope/local references while splicing one scope tree into +/// another. Every scope index shifts by `scope_offset`, *except* index `0` +/// (a tree's own root, in its own numbering), which redirects to +/// `root_scope` instead, with `local_index` shifted by `root_bias` — the +/// callee's-parameters-become-more-locals-on-an-existing-scope case +/// `mir::inlining::inline_call` needs. `rebase_scope` (above) is the +/// special case of this where root scope `0` redirects to exactly +/// `scope_offset`, i.e. nowhere special — a plain uniform shift, which is +/// all `MIR::build_start_function`'s use (combining separate globals' own +/// scope trees, each becoming a genuinely new disjoint scope) ever needs. struct Rebaser { scope_offset: ScopeIndex, wrapper_scope: ScopeIndex, + root_scope: ScopeIndex, + root_bias: LocalIndex, } impl Rebaser { - /// Offsets every scope index in `expr` by `scope_offset` in place, and - /// rewrites `Return { value }` into `Break { scope_index: wrapper_scope, - /// value }`. Never reallocates — only the handful of fields that - /// actually change are touched. + /// For a reference that carries only a scope index (`Block`, `Loop`, + /// `Break`, `Continue` — no local of their own to shift). + #[inline] + fn rebase_scope(&self, scope_index: &mut ScopeIndex) { + if *scope_index == 0 { + *scope_index = self.root_scope; + } else { + *scope_index += self.scope_offset; + } + } + + /// For a reference that carries both a scope index and a local index + /// within it (`LocalGet`/`LocalSet`/`AggregateGet`/`AggregateSet`). + #[inline] + fn rebase_scope_and_local( + &self, + scope_index: &mut ScopeIndex, + local_index: &mut LocalIndex, + ) { + if *scope_index == 0 { + *scope_index = self.root_scope; + *local_index += self.root_bias; + } else { + *scope_index += self.scope_offset; + } + } + fn rebase(&self, expr: &mut Expression) { match &mut expr.kind { - // Scope-indexed leaves — just offset the index. - ExprKind::LocalGet { scope_index, .. } - | ExprKind::AggregateGet { scope_index, .. } - | ExprKind::Continue { scope_index } => { - *scope_index += self.scope_offset; + ExprKind::LocalGet { + scope_index, + local_index, + } => self.rebase_scope_and_local(scope_index, local_index), + ExprKind::AggregateGet { + scope_index, + local_index, + .. + } => self.rebase_scope_and_local(scope_index, local_index), + ExprKind::Continue { scope_index } => { + self.rebase_scope(scope_index) } - // Scope-indexed variants with a child to recurse into. ExprKind::LocalSet { - scope_index, value, .. + scope_index, + local_index, + value, + } => { + self.rebase_scope_and_local(scope_index, local_index); + self.rebase(value); } - | ExprKind::AggregateSet { - scope_index, value, .. + ExprKind::AggregateSet { + scope_index, + local_index, + value, + .. + } => { + self.rebase_scope_and_local(scope_index, local_index); + self.rebase(value); } - | ExprKind::Loop { + ExprKind::Loop { scope_index, block: value, } => { - *scope_index += self.scope_offset; + self.rebase_scope(scope_index); self.rebase(value); } ExprKind::Block { scope_index, expressions, } => { - *scope_index += self.scope_offset; + self.rebase_scope(scope_index); for e in expressions.iter_mut() { self.rebase(e); } } ExprKind::Break { scope_index, value } => { - *scope_index += self.scope_offset; + self.rebase_scope(scope_index); if let Some(v) = value { self.rebase(v); } @@ -71,7 +144,6 @@ impl Rebaser { value, }; } - // Non-scope variants with a single child — recurse only. ExprKind::Drop { value } | ExprKind::GlobalSet { value, .. } | ExprKind::Neg { value } @@ -79,6 +151,7 @@ impl Rebaser { | ExprKind::Abs { value } | ExprKind::Floor { value } | ExprKind::Ceil { value } + | ExprKind::Trunc { value } | ExprKind::BitNot { value } | ExprKind::Eqz { value } | ExprKind::I64ExtendI32S { value } @@ -104,7 +177,6 @@ impl Rebaser { | ExprKind::F32DemoteF64 { value } | ExprKind::PointerLoad { pointer: value, .. } | ExprKind::MemoryGrow { delta: value, .. } => self.rebase(value), - // Non-scope variants with two children. ExprKind::Add { left, right } | ExprKind::Sub { left, right } | ExprKind::Mul { left, right } @@ -176,7 +248,6 @@ impl Rebaser { self.rebase(d); } } - // Leaf variants — nothing to rebase. ExprKind::Noop | ExprKind::Bool { .. } | ExprKind::Function { .. } @@ -192,23 +263,31 @@ impl Rebaser { } } -/// Offsets every scope index in `expr` by `scope_offset` (in place), and -/// rewrites `Return { value }` into `Break { scope_index: wrapper_scope, -/// value }`. -pub(super) fn rebase_scope( - expr: &mut Expression, - scope_offset: ScopeIndex, - wrapper_scope: ScopeIndex, -) { - Rebaser { - scope_offset, - wrapper_scope, - } - .rebase(expr); -} - /// Substitutes a direct call at the call site with the callee's body inlined -/// into the caller. Appends the required scopes to `caller_scopes`. +/// into the caller. Appends any scopes the callee needs beyond its root to +/// `caller_scopes`. +/// +/// The callee's own root-scope locals — its parameters, and any `local` it +/// declares directly in its own body — become more locals on +/// `caller_scopes[call_site_scope]` itself, not a new sibling scope. A +/// second inlined call at the same site (another argument of the same +/// expression, or a later, separate inlining sweep substituting a sibling) +/// simply finds more locals already there and gets index ranges past them — +/// the same way a second ordinary `local` declaration would. Nothing needs +/// protecting: `Vec::push` can't collide with itself. +/// +/// (This is what `compute_locals_offsets` in `opt/builder.rs` used to get +/// wrong: it gives every scope the same flat local-offset as its +/// `parent`-siblings, assuming — correctly for `if`/`else`/`match` arms, +/// the only shape ordinary lowering produces — that same-parent scopes are +/// mutually exclusive at runtime. Inlining used to create a *new* sibling +/// scope per call for exactly this data, which made that assumption false. +/// Not creating that scope removes the false assumption instead of working +/// around it.) +/// +/// The wrapper scope below still exists, unconditionally, as the `break` +/// target for the callee's own `Return`s — but it never holds any locals +/// itself, so it's always safe to parent directly at the call site. fn inline_call( callee: &Function, arguments: Box<[Expression]>, @@ -216,30 +295,14 @@ fn inline_call( call_site_scope: ScopeIndex, ) -> Expression { let result_ty = callee.block.ty; + let callee_root = &callee.scopes[0]; - // The wrapper scope is the break-target for all rewritten `Return` nodes. - let wrapper_scope = caller_scopes.len() as ScopeIndex; - caller_scopes.push(BlockScope { - kind: tir::BlockKind::Block, - parent: Some(call_site_scope), - locals: vec![], - result: result_ty, - }); + let root_bias = + caller_scopes[call_site_scope as usize].locals.len() as LocalIndex; + caller_scopes[call_site_scope as usize] + .locals + .extend(callee_root.locals.iter().cloned()); - // Callee's scopes follow the wrapper. Offset their parent pointers. - let body_scope_offset = caller_scopes.len() as ScopeIndex; - for scope in callee.scopes.iter().cloned() { - caller_scopes.push(BlockScope { - parent: scope - .parent - .map(|p| p + body_scope_offset) - .or(Some(wrapper_scope)), - ..scope - }); - } - - // Store each argument into the corresponding param local in the callee's - // root scope (now living at body_scope_offset). let mut exprs: Vec = arguments .into_vec() .into_iter() @@ -247,15 +310,42 @@ fn inline_call( .map(|(i, arg)| Expression { ty: Type::Unit, kind: ExprKind::LocalSet { - scope_index: body_scope_offset, - local_index: i as LocalIndex, + scope_index: call_site_scope, + local_index: root_bias + i as LocalIndex, value: Box::new(arg), }, }) .collect(); + let wrapper_scope = caller_scopes.len() as ScopeIndex; + caller_scopes.push(BlockScope { + kind: tir::BlockKind::Block, + parent: Some(call_site_scope), + locals: vec![], + result: result_ty, + }); + + // Any scopes the callee's own body nests beyond its root (its own + // if/else, loops, ...) still need their own entries, following the + // wrapper — the callee's root itself is never copied; it was just + // dissolved into `call_site_scope` above. Scope `k` (k >= 1) in the + // callee's own numbering lands at `k + wrapper_scope`; a parent of `0` + // (the callee's own root) becomes `wrapper_scope` by that same formula. + for scope in callee.scopes[1..].iter().cloned() { + caller_scopes.push(BlockScope { + parent: scope.parent.map(|p| p + wrapper_scope), + ..scope + }); + } + let mut body = callee.block.clone(); - rebase_scope(&mut body, body_scope_offset, wrapper_scope); + Rebaser { + scope_offset: wrapper_scope, + wrapper_scope, + root_scope: call_site_scope, + root_bias, + } + .rebase(&mut body); exprs.push(body); Expression { @@ -287,6 +377,7 @@ fn inline_expr( | ExprKind::Abs { value } | ExprKind::Floor { value } | ExprKind::Ceil { value } + | ExprKind::Trunc { value } | ExprKind::BitNot { value } | ExprKind::Eqz { value } | ExprKind::I64ExtendI32S { value } diff --git a/crates/wx-compiler/src/mir/mod.rs b/crates/wx-compiler/src/mir/mod.rs index cbf3889..b432bff 100644 --- a/crates/wx-compiler/src/mir/mod.rs +++ b/crates/wx-compiler/src/mir/mod.rs @@ -209,6 +209,9 @@ pub enum ExprKind { Ceil { value: Box, }, + Trunc { + value: Box, + }, I64ExtendI32S { value: Box, }, @@ -1385,6 +1388,20 @@ impl<'tir> Builder<'tir> { } } + /// Whether `id` refers to an `#[intrinsic]` function. Intrinsic calls are + /// eliminated entirely during lowering (substituted for a dedicated + /// `ExprKind` variant) and never become a real `mir::Function`, so they + /// must never be recorded as a call-graph edge — an intrinsic id showing + /// up as someone's callee would leave `CallGraph`'s `callers` map without + /// an entry for it (populated only from `mir.functions`), which the + /// inlining pass's Kahn-queue loop assumes always exists. + fn is_intrinsic(&self, id: ast::DefId) -> bool { + let func_index = self.tir.expect_function_index(id); + self.tir.functions[func_index as usize] + .attributes + .contains(&tir::ItemAttribute::Intrinsic) + } + fn lower_function(&mut self, func: &tir::Function) -> Function { let body = func .body @@ -1447,7 +1464,9 @@ impl<'tir> Builder<'tir> { .value .as_ref() .and_then(|body| match body.block.kind { - tir::ExprKind::Int { value } => Some(ConstInit::Int(value)), + tir::ExprKind::Int { value } => { + Some(ConstInit::Int(value as i64)) + } tir::ExprKind::Float { value } => Some(ConstInit::Float(value)), _ => None, }) @@ -1615,7 +1634,7 @@ impl<'tir> Builder<'tir> { buf.extend_from_slice(&(v as u32).to_le_bytes()); } else if ty == tir::TypeIndex::I64 || ty == tir::TypeIndex::U64 { - buf.extend_from_slice(&(v as u64).to_le_bytes()); + buf.extend_from_slice(&v.to_le_bytes()); } else { unreachable!("unexpected int element type"); } @@ -1802,7 +1821,7 @@ impl<'tir> Builder<'tir> { expr: &tir::Expression, sink: &mut Vec, ) -> Expression { - use crate::ast::{BinaryOp, UnaryOp}; + use crate::ast::UnaryOp; match &expr.kind { tir::ExprKind::Error @@ -1816,7 +1835,9 @@ impl<'tir> Builder<'tir> { ty: Type::Never, }, tir::ExprKind::Int { value } => Expression { - kind: ExprKind::Int { value: *value }, + kind: ExprKind::Int { + value: *value as i64, + }, ty: self.lower_type_index(expr.ty), }, tir::ExprKind::Float { value } => Expression { @@ -1865,7 +1886,9 @@ impl<'tir> Builder<'tir> { let mono_id = self .mono_registry .get_or_insert(fn_id, concrete_args.clone()); - self.record_call_edge(mono_id); + if !self.is_intrinsic(fn_id) { + self.record_call_edge(mono_id); + } let fi = self.tir.expect_function_index(fn_id) as usize; let sig_idx = self.tir.functions[fi].signature_index; let saved = std::mem::replace( @@ -1881,7 +1904,9 @@ impl<'tir> Builder<'tir> { } } _ => { - self.record_call_edge(*id); + if !self.is_intrinsic(*id) { + self.record_call_edge(*id); + } Expression { kind: ExprKind::Function { id: *id }, ty: self.lower_type_index(expr.ty), @@ -2087,20 +2112,42 @@ impl<'tir> Builder<'tir> { .expect("no impl found for abstract trait method"); let impl_func_id = self.tir.functions[impl_func_idx as usize].id; - if impl_type_args.is_empty() { - // Concrete impl: the method has zero type params of - // its own, so it was already eagerly emitted (with - // this bare id) by `MIR::build`'s main loop — reuse + // `impl_type_args` alone only covers the impl block's own + // params (e.g. `impl Trait for Box`'s `T`) — the + // impl's copy of the method can *also* declare its own + // extra params (e.g. `fn write(...)` on an + // otherwise-concrete `impl Hasher for DefaultHasher`), + // which `impl_type_args` says nothing about. Reusing the + // bare `impl_func_id` whenever `impl_type_args` alone is + // empty is therefore wrong whenever the method has any + // such params of its own: that instance was never + // eagerly emitted by `MIR::build`'s main loop (which only + // emits functions with zero *total* type params), so the + // bare id has no MIR function/wasm index behind it. + let impl_own_type_params = + &self.tir.functions[impl_func_idx as usize].type_params; + if impl_type_args.is_empty() + && impl_own_type_params.is_empty() + { + // Fully concrete: zero total type params, so it was + // already eagerly emitted (with this bare id) — reuse // it directly rather than registering a redundant // duplicate through `mono_registry`. impl_func_id } else { - // Generic impl: this method's `total_type_param_count` - // is nonzero (it inherits the impl's own params), so - // `MIR::build`'s main loop skipped it — it only ever - // gets lowered on demand, here, via the worklist. + // Needs monomorphizing on demand via the worklist. + // Full arg list: the impl block's own args (its + // inherited-param prefix) followed by the method's + // own args — `resolved`'s tail after the leading + // `Self` slot (index 0, already consumed above to + // find the impl). + let full_args: Box<[tir::TypeIndex]> = impl_type_args + .iter() + .copied() + .chain(resolved[1..].iter().copied()) + .collect(); self.mono_registry - .get_or_insert(impl_func_id, impl_type_args) + .get_or_insert(impl_func_id, full_args) } }; self.record_call_edge(target_id); @@ -2141,6 +2188,7 @@ impl<'tir> Builder<'tir> { sink, ); } + self.record_call_edge(id); }; let arguments = arguments .iter() @@ -2504,20 +2552,9 @@ impl<'tir> Builder<'tir> { left, right, } => { - use BinaryOp::*; + use tir::BinaryOp::*; let kind = match operator.inner { - Assign => { - self.lower_assignment(func_ctx, left, right, sink) - } - AddAssign | SubAssign | MulAssign | DivAssign - | RemAssign => self.lower_compound_assignment( - func_ctx, - operator.inner, - left, - right, - sink, - ), Add => { let left = Box::new( self.lower_expression(func_ctx, left, sink), @@ -3044,6 +3081,50 @@ impl<'tir> Builder<'tir> { ty: Type::Unit, } } + tir::ExprKind::Assign { left, right } => Expression { + kind: self.lower_assignment(func_ctx, left, right, sink), + ty: Type::Unit, + }, + tir::ExprKind::CompoundAssign { + target, + rhs, + method_id, + } => self + .lower_compound_assign(func_ctx, target, rhs, *method_id, sink), + tir::ExprKind::GenericCompoundAssign { + target, + rhs, + abstract_method_id, + self_type, + } => { + let method_id = self.resolve_generic_compound_method( + *abstract_method_id, + *self_type, + ); + self.lower_compound_assign( + func_ctx, target, rhs, method_id, sink, + ) + } + tir::ExprKind::CompoundStore { + target, + rhs, + method_id, + } => self + .lower_compound_store(func_ctx, target, rhs, *method_id, sink), + tir::ExprKind::GenericCompoundStore { + target, + rhs, + abstract_method_id, + self_type, + } => { + let method_id = self.resolve_generic_compound_method( + *abstract_method_id, + *self_type, + ); + self.lower_compound_store( + func_ctx, target, rhs, method_id, sink, + ) + } } } @@ -3278,6 +3359,187 @@ impl<'tir> Builder<'tir> { }, ty: self.lower_type_index(expr_ty), }, + "f32_trunc" | "f64_trunc" => Expression { + kind: ExprKind::Trunc { + value: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_neg" | "i64_neg" | "f32_neg" | "f64_neg" => Expression { + kind: ExprKind::Neg { + value: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_bitnot" | "i64_bitnot" => Expression { + kind: ExprKind::BitNot { + value: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_add" | "i64_add" | "f32_add" | "f64_add" => Expression { + kind: ExprKind::Add { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_sub" | "i64_sub" | "f32_sub" | "f64_sub" => Expression { + kind: ExprKind::Sub { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_mul" | "i64_mul" | "f32_mul" | "f64_mul" => Expression { + kind: ExprKind::Mul { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_div" | "u32_div" | "i64_div" | "u64_div" | "f32_div" + | "f64_div" => Expression { + kind: ExprKind::Div { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_rem" | "u32_rem" | "i64_rem" | "u64_rem" => Expression { + kind: ExprKind::Rem { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_bitand" | "i64_bitand" => Expression { + kind: ExprKind::BitAnd { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_bitor" | "i64_bitor" => Expression { + kind: ExprKind::BitOr { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_bitxor" | "i64_bitxor" => Expression { + kind: ExprKind::BitXor { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_shl" | "i64_shl" => Expression { + kind: ExprKind::LeftShift { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, + "i32_shr" | "u32_shr" | "i64_shr" | "u64_shr" => Expression { + kind: ExprKind::RightShift { + left: Box::new(self.lower_expression( + func_ctx, + &arguments[0], + sink, + )), + right: Box::new(self.lower_expression( + func_ctx, + &arguments[1], + sink, + )), + }, + ty: self.lower_type_index(expr_ty), + }, "i64_extend_i32" => Expression { kind: ExprKind::I64ExtendI32S { value: Box::new(self.lower_expression( @@ -3642,18 +3904,40 @@ impl<'tir> Builder<'tir> { right: &tir::Expression, sink: &mut Vec, ) -> ExprKind { - match &left.kind { + if let tir::ExprKind::Placeholder = &left.kind { + // `_ = expr`: evaluate rhs for side effects, discard the value. + return ExprKind::Drop { + value: Box::new(self.lower_expression(func_ctx, right, sink)), + }; + } + let value = self.lower_expression(func_ctx, right, sink); + self.lower_assign_target(left, value) + } + + /// Builds the `LocalSet`/`GlobalSet`/`AggregateSet` that writes `value` + /// to `target` (a `Local`/`Global`/`FieldAccess`). Shared by plain + /// assignment (`lower_assignment`, `value` = the lowered rhs) and + /// compound assignment (`lower_compound_assign`, `value` = the resolved + /// operator method's `Call`) — `target`'s own indices/field-offset are + /// pure metadata lookups, never requiring further lowering, so both + /// callers can share this exactly. + fn lower_assign_target( + &mut self, + target: &tir::Expression, + value: Expression, + ) -> ExprKind { + match &target.kind { tir::ExprKind::Local { scope_index, local_index, } => ExprKind::LocalSet { scope_index: *scope_index, local_index: *local_index, - value: Box::new(self.lower_expression(func_ctx, right, sink)), + value: Box::new(value), }, tir::ExprKind::Global { id } => ExprKind::GlobalSet { id: *id, - value: Box::new(self.lower_expression(func_ctx, right, sink)), + value: Box::new(value), }, tir::ExprKind::FieldAccess { object, @@ -3685,131 +3969,184 @@ impl<'tir> Builder<'tir> { scope_index: *scope_index, local_index: *local_index, value_index: phys_index as u32, - value: Box::new( - self.lower_expression(func_ctx, right, sink), - ), - } - } - tir::ExprKind::Placeholder => { - // `_ = expr`: evaluate rhs for side effects, discard the value. - ExprKind::Drop { - value: Box::new( - self.lower_expression(func_ctx, right, sink), - ), + value: Box::new(value), } } - _ => unreachable!(), + _ => unreachable!( + "assignment target must be Local/Global/FieldAccess" + ), } } - fn lower_compound_assignment( + /// Builds the `Call` to `method_id` a compound-assignment operator + /// resolves to — `current_value`/`rhs` are its two arguments (mirrors + /// `MethodCall`'s lowering), and the call's own MIR type is + /// `current_value`'s type, since every operator trait method returns + /// `Self`. Records the call-graph edge so the inlining pass considers + /// this call a candidate exactly like an ordinary `MethodCall` would — + /// primitive impls (`impl Add for i32`, `#[inline]`) only collapse back + /// to a native op if this edge exists. + fn build_compound_operator_call( + &mut self, + method_id: ast::DefId, + current_value: Expression, + rhs: Expression, + ) -> Expression { + self.record_call_edge(method_id); + let ty = current_value.ty; + let tir_idx = self.tir.expect_function_index(method_id); + let callee_sig_idx = self.intern_tir_function_type( + self.tir.functions[tir_idx as usize].signature_index, + ); + Expression { + kind: ExprKind::Call { + callee: Box::new(Expression { + kind: ExprKind::Function { id: method_id }, + ty: Type::Function { + signature_index: callee_sig_idx, + }, + }), + arguments: Box::new([current_value, rhs]), + }, + ty, + } + } + + /// Resolves `GenericCompoundAssign`/`GenericCompoundStore`'s abstract + /// trait method to a concrete one now that `self_type` is guaranteed + /// concrete (the surrounding function has already been monomorphized + /// for this instantiation) — exactly `GenericMethodCall`'s + /// abstract-method branch, just factored out since compound assignment + /// has two `Place`/non-`Place` shapes that both need it. + fn resolve_generic_compound_method( + &mut self, + abstract_method_id: ast::DefId, + self_type: tir::TypeIndex, + ) -> ast::DefId { + let concrete_self = self.resolve_tir_type(self_type); + let tir_idx = self.tir.expect_function_index(abstract_method_id); + let tir_func = &self.tir.functions[tir_idx as usize]; + let method_name = tir_func.name.inner; + let trait_index = match tir_func.parent { + Some(tir::ItemParent::Trait(idx)) => idx, + _ => unreachable!( + "abstract trait method must be parented by its trait" + ), + }; + let (trait_impl_idx, impl_type_args) = self + .tir + .find_trait_impl(concrete_self, trait_index) + .expect("no impl found for abstract trait method"); + let impl_func_idx = self.tir.trait_impls[trait_impl_idx as usize] + .members + .get(&method_name) + .map(|entry| match entry { + tir::ImplEntry::Method(idx) => *idx, + _ => unreachable!(), + }) + .expect("no impl found for abstract trait method"); + let impl_func_id = self.tir.functions[impl_func_idx as usize].id; + if impl_type_args.is_empty() { + impl_func_id + } else { + self.mono_registry + .get_or_insert(impl_func_id, impl_type_args) + } + } + + /// `CompoundAssign`/`GenericCompoundAssign` (target is `Local`/`Global`/ + /// `FieldAccess`): read the current value, call the resolved operator + /// method, write the result back — `target`'s indices are safe to + /// reference twice (`Copy` metadata, not a computation), so no + /// once-only-lowering concern here, unlike `lower_compound_store`. + fn lower_compound_assign( &mut self, func_ctx: &mut FunctionContext, - op: crate::ast::BinaryOp, - left: &tir::Expression, - right: &tir::Expression, + target: &tir::Expression, + rhs: &tir::Expression, + method_id: ast::DefId, sink: &mut Vec, - ) -> ExprKind { - use crate::ast::BinaryOp::*; - - // Desugar x += y to x = x + y - let binary_op = match op { - AddAssign => Add, - SubAssign => Sub, - MulAssign => Mul, - DivAssign => Div, - RemAssign => Rem, - _ => unreachable!(), - }; + ) -> Expression { + let current_value = self.lower_expression(func_ctx, target, sink); + let lowered_rhs = self.lower_expression(func_ctx, rhs, sink); + let call = self.build_compound_operator_call( + method_id, + current_value, + lowered_rhs, + ); + Expression { + kind: self.lower_assign_target(target, call), + ty: Type::Unit, + } + } - // Create the binary operation: x + y - let binary_expr_kind = match binary_op { - Add => ExprKind::Add { - left: Box::new(self.lower_expression(func_ctx, left, sink)), - right: Box::new(self.lower_expression(func_ctx, right, sink)), - }, - Sub => ExprKind::Sub { - left: Box::new(self.lower_expression(func_ctx, left, sink)), - right: Box::new(self.lower_expression(func_ctx, right, sink)), - }, - Mul => ExprKind::Mul { - left: Box::new(self.lower_expression(func_ctx, left, sink)), - right: Box::new(self.lower_expression(func_ctx, right, sink)), - }, - Div => ExprKind::Div { - left: Box::new(self.lower_expression(func_ctx, left, sink)), - right: Box::new(self.lower_expression(func_ctx, right, sink)), - }, - Rem => ExprKind::Rem { - left: Box::new(self.lower_expression(func_ctx, left, sink)), - right: Box::new(self.lower_expression(func_ctx, right, sink)), + /// `CompoundStore`/`GenericCompoundStore` (target is a `Place`): the + /// careful one. Computes `target`'s address exactly once and sinks it + /// into a temp local, reused via `LocalGet` for both the old-value read + /// and the final store — fixes the pre-existing double-evaluation bug + /// where e.g. `arr[i()] += 1` called `i()` twice (once per + /// `lower_place_address` call). Mirrors the temp-local idiom already + /// used elsewhere in this file (e.g. `lower_intrinsic`'s `slice_len`/ + /// `slice_ptr` arms). + fn lower_compound_store( + &mut self, + func_ctx: &mut FunctionContext, + target: &tir::Place, + rhs: &tir::Expression, + method_id: ast::DefId, + sink: &mut Vec, + ) -> Expression { + let (ptr, offset, memory) = + self.lower_place_address(func_ctx, target, sink); + let ptr_ty = ptr.ty; + let temp_idx = func_ctx.frame[0].locals.len() as u32; + func_ctx.frame[0].locals.push(Local { + ty: ptr_ty, + mutability: Mutability::Immutable, + }); + sink.push(Expression { + kind: ExprKind::LocalSet { + scope_index: 0, + local_index: temp_idx, + value: Box::new(ptr), }, - _ => unreachable!(), - }; - - let binary_expr = Expression { - kind: binary_expr_kind, - ty: self.lower_type_index(left.ty), - }; + ty: Type::Unit, + }); - // Now assign the result back to left: x = (x + y) - match &left.kind { - tir::ExprKind::Local { - scope_index, - local_index, - } => ExprKind::LocalSet { - scope_index: *scope_index, - local_index: *local_index, - value: Box::new(binary_expr), + let current_value = Expression { + kind: ExprKind::PointerLoad { + pointer: Box::new(Expression { + kind: ExprKind::LocalGet { + scope_index: 0, + local_index: temp_idx, + }, + ty: ptr_ty, + }), + offset, + memory, }, - tir::ExprKind::Global { id } => ExprKind::GlobalSet { - id: *id, - value: Box::new(binary_expr), + ty: self.lower_type_index(target.ty), + }; + let lowered_rhs = self.lower_expression(func_ctx, rhs, sink); + let call = self.build_compound_operator_call( + method_id, + current_value, + lowered_rhs, + ); + Expression { + kind: ExprKind::PointerStore { + pointer: Box::new(Expression { + kind: ExprKind::LocalGet { + scope_index: 0, + local_index: temp_idx, + }, + ty: ptr_ty, + }), + value: Box::new(call), + offset, + memory, }, - tir::ExprKind::Load { place } => { - let (ptr, offset, memory) = - self.lower_place_address(func_ctx, place, sink); - ExprKind::PointerStore { - pointer: Box::new(ptr), - value: Box::new(binary_expr), - offset, - memory, - } - } - tir::ExprKind::FieldAccess { - object, - field: member, - } => { - let (struct_index, args) = - match &self.tir.types[object.ty.as_usize()] { - tir::Type::Struct { struct_index, args } => { - (*struct_index, args.clone()) - } - _ => unreachable!("ObjectAccess on non-struct type"), - }; - let aggregate_index = - self.ensure_aggregate_for_struct(struct_index, &args); - let decl_index = self.tir.structs[struct_index as usize].lookup - [&member.inner]; - let phys_index = self.aggregates[aggregate_index as usize] - .decl_to_phys[decl_index] as usize; - let tir::ExprKind::Local { - scope_index, - local_index, - } = &object.kind - else { - unreachable!( - "ObjectAccess compound assignment: object must be Local after place/value split" - ) - }; - ExprKind::AggregateSet { - scope_index: *scope_index, - local_index: *local_index, - value_index: phys_index as u32, - value: Box::new(binary_expr), - } - } - _ => unreachable!(), + ty: Type::Unit, } } } diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__align_of_lowers_to_const_int.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__align_of_lowers_to_const_int.snap index a1c1a2f..13f1685 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__align_of_lowers_to_const_int.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__align_of_lowers_to_const_int.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -21,7 +21,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 108 + - id: 404 signature_index: 0 scopes: - kind: Block @@ -39,7 +39,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 109 + - id: 405 signature_index: 0 scopes: - kind: Block @@ -62,27 +62,118 @@ signatures: - U32 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 - Function: - id: 108 - name: 119 + id: 404 + name: 204 - Function: - id: 109 - name: 120 + id: 405 + name: 205 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__char_lowered_to_u32.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__char_lowered_to_u32.snap index 070a2ab..69a72c6 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__char_lowered_to_u32.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__char_lowered_to_u32.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 106 + - id: 402 signature_index: 0 scopes: - kind: Block @@ -29,6 +29,97 @@ signatures: - U32 - U32 params_count: 1 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 - items: - U32 - Bool @@ -36,8 +127,8 @@ signatures: globals: [] exports: - Function: - id: 106 - name: 117 + id: 402 + name: 202 imports: [] memories: [] aggregates: [] diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__compound_assign_through_ptr_deref_on_struct_field.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__compound_assign_through_ptr_deref_on_struct_field.snap index dc2b61d..88cae67 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__compound_assign_through_ptr_deref_on_struct_field.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__compound_assign_through_ptr_deref_on_struct_field.snap @@ -3,86 +3,236 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 108 - signature_index: 0 + - id: 404 + signature_index: 1 scopes: - kind: Block parent: ~ locals: - ty: Pointer: - memory: 106 + memory: 402 kind: Memory32 mutability: Immutable + - ty: + Pointer: + memory: 402 + kind: Memory32 + mutability: Immutable + - ty: U32 + mutability: Immutable + - ty: U32 + mutability: Immutable result: Unit + - kind: Block + parent: 0 + locals: [] + result: U32 block: kind: Block: scope_index: 0 expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 1 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Pointer: + memory: 402 + kind: Memory32 + ty: Unit - kind: PointerStore: pointer: kind: LocalGet: scope_index: 0 - local_index: 0 + local_index: 1 ty: Pointer: - memory: 106 + memory: 402 kind: Memory32 value: kind: - Add: - left: - kind: - PointerLoad: - pointer: - kind: - LocalGet: - scope_index: 0 - local_index: 0 - ty: - Pointer: - memory: 106 - kind: Memory32 - offset: 4 - memory: 106 - ty: U32 - right: - kind: - Int: - value: 1 - ty: U32 + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 2 + value: + kind: + PointerLoad: + pointer: + kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: + Pointer: + memory: 402 + kind: Memory32 + offset: 4 + memory: 402 + ty: U32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 3 + value: + kind: + Int: + value: 1 + ty: U32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Add: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 2 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 3 + ty: I32 + ty: U32 + ty: U32 ty: U32 offset: 4 - memory: 106 + memory: 402 ty: Unit ty: Unit static_data: [] signatures: + - items: + - U32 + - U32 + - U32 + params_count: 2 - items: - Pointer: - memory: 106 + memory: 402 kind: Memory32 - Unit params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 globals: [] exports: - Function: - id: 108 - name: 121 + id: 404 + name: 206 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__enum_folded_arithmetic_variant_lowered.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__enum_folded_arithmetic_variant_lowered.snap index 596fd50..091b00c 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__enum_folded_arithmetic_variant_lowered.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__enum_folded_arithmetic_variant_lowered.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -26,18 +26,109 @@ signatures: - I32 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 119 + id: 403 + name: 204 imports: [] memories: [] aggregates: [] diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__enum_variant_lowered_to_repr_scalar.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__enum_variant_lowered_to_repr_scalar.snap index 7f6ca94..bf094d1 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__enum_variant_lowered_to_repr_scalar.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__enum_variant_lowered_to_repr_scalar.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -26,18 +26,109 @@ signatures: - I32 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 121 + id: 403 + name: 206 imports: [] memories: [] aggregates: [] diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_bitand_bound_resolves_to_primitive_impl.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_bitand_bound_resolves_to_primitive_impl.snap new file mode 100644 index 0000000..532bd4a --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_bitand_bound_resolves_to_primitive_impl.snap @@ -0,0 +1,227 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 403 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + result: I32 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Call: + callee: + kind: + Function: + id: 404 + ty: + Function: + signature_index: 0 + arguments: + - kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: I32 + - kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: I32 + ty: I32 + ty: I32 + static_data: [] + - id: 404 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + result: I32 + - kind: Block + parent: 0 + locals: [] + result: I32 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 2 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: I32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 3 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: I32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + BitAnd: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 2 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 3 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + static_data: [] +signatures: + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 403 + name: 203 +imports: [] +memories: [] +aggregates: [] +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_bitnot_bound_resolves_to_primitive_impl.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_bitnot_bound_resolves_to_primitive_impl.snap new file mode 100644 index 0000000..f0b3c45 --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_bitnot_bound_resolves_to_primitive_impl.snap @@ -0,0 +1,199 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 403 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: I32 + mutability: Immutable + result: I32 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Call: + callee: + kind: + Function: + id: 404 + ty: + Function: + signature_index: 0 + arguments: + - kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: I32 + ty: I32 + ty: I32 + static_data: [] + - id: 404 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + result: I32 + - kind: Block + parent: 0 + locals: [] + result: I32 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 1 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: I32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + BitNot: + value: + kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + static_data: [] +signatures: + - items: + - I32 + - I32 + params_count: 1 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 403 + name: 203 +imports: [] +memories: [] +aggregates: [] +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_impl_slice_count_method_lowers_correctly.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_impl_slice_count_method_lowers_correctly.snap index 35279fe..6e8e8c6 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_impl_slice_count_method_lowers_correctly.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_impl_slice_count_method_lowers_correctly.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 109 + - id: 405 signature_index: 0 scopes: - kind: Block @@ -24,7 +24,7 @@ functions: callee: kind: Function: - id: 114 + id: 410 ty: Function: signature_index: 0 @@ -39,7 +39,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 114 + - id: 410 signature_index: 0 scopes: - kind: Block @@ -70,21 +70,112 @@ signatures: - U32 params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 109 - name: 119 + id: 405 + name: 204 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ @@ -92,7 +183,7 @@ memories: aggregates: - values: - Pointer: - memory: 106 + memory: 402 kind: Memory32 - U32 offsets: diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_over_memory_monomorphizes_size_type.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_over_memory_monomorphizes_size_type.snap index 0387ade..ed0458f 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_over_memory_monomorphizes_size_type.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_over_memory_monomorphizes_size_type.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 109 + - id: 405 signature_index: 1 scopes: - kind: Block @@ -22,7 +22,7 @@ functions: callee: kind: Function: - id: 119 + id: 415 ty: Function: signature_index: 0 @@ -37,7 +37,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 110 + - id: 406 signature_index: 3 scopes: - kind: Block @@ -56,7 +56,7 @@ functions: callee: kind: Function: - id: 120 + id: 416 ty: Function: signature_index: 2 @@ -71,7 +71,7 @@ functions: ty: U64 ty: U64 static_data: [] - - id: 119 + - id: 415 signature_index: 0 scopes: - kind: Block @@ -94,7 +94,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 120 + - id: 416 signature_index: 2 scopes: - kind: Block @@ -136,6 +136,93 @@ signatures: - U64 - U64 params_count: 1 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 - items: - U32 - Bool @@ -143,19 +230,19 @@ signatures: globals: [] exports: - Function: - id: 109 - name: 122 + id: 405 + name: 207 - Function: - id: 110 - name: 123 + id: 406 + name: 208 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ max_pages: ~ - - id: 107 + - id: 403 source: Internal kind: Memory64 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_type_alias_transparent_in_mir.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_type_alias_transparent_in_mir.snap index 733cf09..a342be3 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_type_alias_transparent_in_mir.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__generic_type_alias_transparent_in_mir.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 108 + - id: 404 signature_index: 0 scopes: - kind: Block @@ -34,18 +34,109 @@ signatures: - U32 params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 108 - name: 119 + id: 404 + name: 204 imports: [] memories: [] aggregates: diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__global_struct_type.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__global_struct_type.snap index 1cc4db4..7b683b3 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__global_struct_type.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__global_struct_type.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -41,18 +41,109 @@ signatures: aggregate_index: 0 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 120 + id: 403 + name: 205 imports: [] memories: [] aggregates: diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__inline_method_is_substituted.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__inline_method_is_substituted.snap index c818c91..967f10e 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__inline_method_is_substituted.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__inline_method_is_substituted.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 110 + - id: 406 signature_index: 0 scopes: - kind: Block @@ -11,6 +11,10 @@ functions: locals: - ty: U32 mutability: Immutable + - ty: U32 + mutability: Immutable + - ty: U32 + mutability: Immutable result: U32 - kind: Block parent: 0 @@ -18,28 +22,16 @@ functions: result: U32 - kind: Block parent: 1 - locals: - - ty: U32 - mutability: Immutable - result: U32 - - kind: Block - parent: 2 locals: [] result: U32 - kind: Block - parent: 2 + parent: 1 locals: [] result: U32 - kind: Block - parent: 2 + parent: 1 locals: [] result: Bool - - kind: Block - parent: 5 - locals: - - ty: U32 - mutability: Immutable - result: Bool block: kind: Block: @@ -51,8 +43,8 @@ functions: expressions: - kind: LocalSet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 value: kind: LocalGet: @@ -62,29 +54,29 @@ functions: ty: Unit - kind: Block: - scope_index: 2 + scope_index: 0 expressions: - kind: IfElse: condition: kind: Block: - scope_index: 5 + scope_index: 4 expressions: - kind: LocalSet: - scope_index: 6 - local_index: 0 + scope_index: 0 + local_index: 2 value: kind: LocalGet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 ty: U32 ty: Unit - kind: Block: - scope_index: 6 + scope_index: 0 expressions: - kind: And: @@ -94,8 +86,8 @@ functions: left: kind: LocalGet: - scope_index: 6 - local_index: 0 + scope_index: 0 + local_index: 2 ty: U32 right: kind: @@ -109,8 +101,8 @@ functions: left: kind: LocalGet: - scope_index: 6 - local_index: 0 + scope_index: 0 + local_index: 2 ty: U32 right: kind: @@ -124,15 +116,15 @@ functions: then_block: kind: Block: - scope_index: 3 + scope_index: 2 expressions: - kind: BitXor: left: kind: LocalGet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 ty: U8 right: kind: @@ -144,12 +136,12 @@ functions: else_block: kind: Block: - scope_index: 4 + scope_index: 3 expressions: - kind: LocalGet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 ty: U32 ty: U32 ty: U32 @@ -162,6 +154,97 @@ signatures: - U32 - U32 params_count: 1 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 - items: - U32 - Bool @@ -169,8 +252,8 @@ signatures: globals: [] exports: - Function: - id: 110 - name: 119 + id: 406 + name: 204 imports: [] memories: [] aggregates: [] diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__match_enum_lowers_discriminants_to_repr_values.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__match_enum_lowers_discriminants_to_repr_values.snap index 9719ba5..a834eee 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__match_enum_lowers_discriminants_to_repr_values.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__match_enum_lowers_discriminants_to_repr_values.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -78,18 +78,109 @@ signatures: - U8 params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 params_count: 1 - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 - U32 - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 121 + id: 403 + name: 206 imports: [] memories: [] aggregates: [] diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__match_int_lowers_to_switch.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__match_int_lowers_to_switch.snap index f78d1da..1effacd 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__match_int_lowers_to_switch.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__match_int_lowers_to_switch.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 106 + - id: 402 signature_index: 0 scopes: - kind: Block @@ -81,18 +81,105 @@ signatures: - I32 params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 params_count: 1 - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 106 - name: 117 + id: 402 + name: 202 imports: [] memories: [] aggregates: [] diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_data_end_lowers_to_memory_offset.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_data_end_lowers_to_memory_offset.snap index a5cd5fe..2b5bfa7 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_data_end_lowers_to_memory_offset.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_data_end_lowers_to_memory_offset.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -11,7 +11,7 @@ functions: locals: [] result: Pointer: - memory: 106 + memory: 402 kind: Memory32 block: kind: @@ -20,38 +20,129 @@ functions: expressions: - kind: MemoryOffset: - memory: 106 + memory: 402 ty: Pointer: - memory: 106 + memory: 402 kind: Memory32 ty: Pointer: - memory: 106 + memory: 402 kind: Memory32 static_data: [] signatures: - items: - Pointer: - memory: 106 + memory: 402 kind: Memory32 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_grow_lowers_to_memory_grow.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_grow_lowers_to_memory_grow.snap index 843e6bf..15e7a7d 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_grow_lowers_to_memory_grow.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_grow_lowers_to_memory_grow.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 1 scopes: - kind: Block @@ -11,19 +11,15 @@ functions: locals: - ty: U32 mutability: Immutable - result: I32 - - kind: Block - parent: 0 - locals: [] - result: I32 - - kind: Block - parent: 1 - locals: - ty: Unit mutability: Immutable - ty: U32 mutability: Immutable result: I32 + - kind: Block + parent: 0 + locals: [] + result: I32 block: kind: Block: @@ -35,16 +31,16 @@ functions: expressions: - kind: LocalSet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 value: kind: Noop ty: Unit ty: Unit - kind: LocalSet: - scope_index: 2 - local_index: 1 + scope_index: 0 + local_index: 2 value: kind: LocalGet: @@ -54,16 +50,16 @@ functions: ty: Unit - kind: Block: - scope_index: 2 + scope_index: 0 expressions: - kind: MemoryGrow: - memory: 106 + memory: 402 delta: kind: LocalGet: - scope_index: 2 - local_index: 1 + scope_index: 0 + local_index: 2 ty: U32 ty: I32 ty: I32 @@ -81,21 +77,112 @@ signatures: - I32 params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_index_lowers_to_int.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_index_lowers_to_int.snap index 426afb7..69554a9 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_index_lowers_to_int.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_index_lowers_to_int.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -17,7 +17,7 @@ functions: expressions: - kind: MemoryIndex: - memory: 106 + memory: 402 ty: U32 ty: U32 static_data: [] @@ -26,21 +26,112 @@ signatures: - U32 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_size_lowers_to_memory_size.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_size_lowers_to_memory_size.snap index 34e61d0..a6c04ad 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_size_lowers_to_memory_size.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__memory_size_lowers_to_memory_size.snap @@ -3,23 +3,19 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 1 scopes: - kind: Block parent: ~ - locals: [] + locals: + - ty: Unit + mutability: Immutable result: U32 - kind: Block parent: 0 locals: [] result: U32 - - kind: Block - parent: 1 - locals: - - ty: Unit - mutability: Immutable - result: U32 block: kind: Block: @@ -31,7 +27,7 @@ functions: expressions: - kind: LocalSet: - scope_index: 2 + scope_index: 0 local_index: 0 value: kind: Noop @@ -39,11 +35,11 @@ functions: ty: Unit - kind: Block: - scope_index: 2 + scope_index: 0 expressions: - kind: MemorySize: - memory: 106 + memory: 402 ty: U32 ty: U32 ty: U32 @@ -58,21 +54,112 @@ signatures: - U32 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__non_inline_callee_survives_dce.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__non_inline_callee_survives_dce.snap index e6ea7d8..d783c25 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__non_inline_callee_survives_dce.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__non_inline_callee_survives_dce.snap @@ -3,14 +3,22 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 106 - signature_index: 0 + - id: 402 + signature_index: 1 scopes: - kind: Block parent: ~ locals: - ty: U32 mutability: Immutable + - ty: U32 + mutability: Immutable + - ty: U32 + mutability: Immutable + result: U32 + - kind: Block + parent: 0 + locals: [] result: U32 block: kind: @@ -18,23 +26,55 @@ functions: scope_index: 0 expressions: - kind: - Add: - left: - kind: - LocalGet: - scope_index: 0 - local_index: 0 - ty: U32 - right: - kind: - Int: - value: 1 - ty: U32 + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 1 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: U32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 2 + value: + kind: + Int: + value: 1 + ty: U32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Add: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 2 + ty: I32 + ty: U32 + ty: U32 ty: U32 ty: U32 static_data: [] - - id: 107 - signature_index: 0 + - id: 403 + signature_index: 1 scopes: - kind: Block parent: ~ @@ -52,10 +92,10 @@ functions: callee: kind: Function: - id: 106 + id: 402 ty: Function: - signature_index: 0 + signature_index: 1 arguments: - kind: LocalGet: @@ -69,7 +109,98 @@ signatures: - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 - items: - U32 - Bool @@ -77,8 +208,8 @@ signatures: globals: [] exports: - Function: - id: 107 - name: 119 + id: 403 + name: 204 imports: [] memories: [] aggregates: [] diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__size_of_generic_monomorphizes.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__size_of_generic_monomorphizes.snap index bdbbdb2..85bf6a8 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__size_of_generic_monomorphizes.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__size_of_generic_monomorphizes.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 108 + - id: 404 signature_index: 0 scopes: - kind: Block @@ -20,7 +20,7 @@ functions: callee: kind: Function: - id: 114 + id: 410 ty: Function: signature_index: 0 @@ -28,7 +28,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 109 + - id: 405 signature_index: 0 scopes: - kind: Block @@ -45,7 +45,7 @@ functions: callee: kind: Function: - id: 115 + id: 411 ty: Function: signature_index: 0 @@ -53,7 +53,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 114 + - id: 410 signature_index: 0 scopes: - kind: Block @@ -71,7 +71,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 115 + - id: 411 signature_index: 0 scopes: - kind: Block @@ -94,24 +94,115 @@ signatures: - U32 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 108 - name: 120 + id: 404 + name: 205 - Function: - id: 109 - name: 121 + id: 405 + name: 206 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__size_of_lowers_to_const_int.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__size_of_lowers_to_const_int.snap index 356e5b3..4394bf2 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__size_of_lowers_to_const_int.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__size_of_lowers_to_const_int.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -21,7 +21,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 108 + - id: 404 signature_index: 0 scopes: - kind: Block @@ -39,7 +39,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 109 + - id: 405 signature_index: 0 scopes: - kind: Block @@ -57,7 +57,7 @@ functions: ty: U32 ty: U32 static_data: [] - - id: 110 + - id: 406 signature_index: 0 scopes: - kind: Block @@ -80,30 +80,121 @@ signatures: - U32 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 - Function: - id: 108 - name: 119 + id: 404 + name: 204 - Function: - id: 109 - name: 120 + id: 405 + name: 205 - Function: - id: 110 - name: 121 + id: 406 + name: 206 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__slice_from_parts_lowers_to_aggregate.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__slice_from_parts_lowers_to_aggregate.snap index d3f0729..b9fe63d 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__slice_from_parts_lowers_to_aggregate.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__slice_from_parts_lowers_to_aggregate.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -11,7 +11,7 @@ functions: locals: - ty: Pointer: - memory: 106 + memory: 402 kind: Memory32 mutability: Immutable - ty: U32 @@ -33,7 +33,7 @@ functions: local_index: 0 ty: Pointer: - memory: 106 + memory: 402 kind: Memory32 - kind: LocalGet: @@ -50,28 +50,119 @@ functions: signatures: - items: - Pointer: - memory: 106 + memory: 402 kind: Memory32 - U32 - Aggregate: aggregate_index: 0 params_count: 2 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 - items: - U32 - U32 params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ @@ -79,7 +170,7 @@ memories: aggregates: - values: - Pointer: - memory: 106 + memory: 402 kind: Memory32 - U32 offsets: diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__slice_len_lowers_to_aggregate_get.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__slice_len_lowers_to_aggregate_get.snap index 2f3201c..95f31ba 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__slice_len_lowers_to_aggregate_get.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__slice_len_lowers_to_aggregate_get.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -34,21 +34,112 @@ signatures: - U32 params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 imports: [] memories: - - id: 106 + - id: 402 source: Internal kind: Memory32 min_pages: ~ @@ -56,7 +147,7 @@ memories: aggregates: - values: - Pointer: - memory: 106 + memory: 402 kind: Memory32 - U32 offsets: diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitand_overload_inline_method_is_substituted.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitand_overload_inline_method_is_substituted.snap new file mode 100644 index 0000000..563be76 --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitand_overload_inline_method_is_substituted.snap @@ -0,0 +1,235 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 405 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + - kind: Block + parent: 0 + locals: [] + result: + Aggregate: + aggregate_index: 0 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 2 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 3 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: + Aggregate: + aggregate_index: 0 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Aggregate: + values: + - kind: + BitAnd: + left: + kind: + AggregateGet: + scope_index: 0 + local_index: 2 + value_index: 0 + ty: I32 + right: + kind: + AggregateGet: + scope_index: 0 + local_index: 3 + value_index: 0 + ty: I32 + ty: I32 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] +signatures: + - items: + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + params_count: 2 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 405 + name: 204 +imports: [] +memories: [] +aggregates: + - values: + - I32 + offsets: + - 0 + layout: + size: 4 + align: 4 + decl_to_phys: + - 0 +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitand_overload_lowers_to_call.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitand_overload_lowers_to_call.snap new file mode 100644 index 0000000..53c50fa --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitand_overload_lowers_to_call.snap @@ -0,0 +1,234 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 405 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Call: + callee: + kind: + Function: + id: 403 + ty: + Function: + signature_index: 0 + arguments: + - kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Aggregate: + aggregate_index: 0 + - kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] + - id: 403 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Aggregate: + values: + - kind: + BitAnd: + left: + kind: + AggregateGet: + scope_index: 0 + local_index: 0 + value_index: 0 + ty: I32 + right: + kind: + AggregateGet: + scope_index: 0 + local_index: 1 + value_index: 0 + ty: I32 + ty: I32 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] +signatures: + - items: + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + params_count: 2 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 405 + name: 204 +imports: [] +memories: [] +aggregates: + - values: + - I32 + offsets: + - 0 + layout: + size: 4 + align: 4 + decl_to_phys: + - 0 +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitnot_overload_inline_method_is_substituted.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitnot_overload_inline_method_is_substituted.snap new file mode 100644 index 0000000..0a65949 --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitnot_overload_inline_method_is_substituted.snap @@ -0,0 +1,205 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 405 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + - kind: Block + parent: 0 + locals: [] + result: + Aggregate: + aggregate_index: 0 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 1 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Aggregate: + values: + - kind: + BitNot: + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 1 + value_index: 0 + ty: I32 + ty: I32 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] +signatures: + - items: + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + params_count: 1 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 405 + name: 204 +imports: [] +memories: [] +aggregates: + - values: + - I32 + offsets: + - 0 + layout: + size: 4 + align: 4 + decl_to_phys: + - 0 +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitnot_overload_lowers_to_call.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitnot_overload_lowers_to_call.snap new file mode 100644 index 0000000..e4bc16c --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_bitnot_overload_lowers_to_call.snap @@ -0,0 +1,210 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 405 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Call: + callee: + kind: + Function: + id: 403 + ty: + Function: + signature_index: 0 + arguments: + - kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] + - id: 403 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Aggregate: + values: + - kind: + BitNot: + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 0 + value_index: 0 + ty: I32 + ty: I32 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] +signatures: + - items: + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + params_count: 1 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 405 + name: 204 +imports: [] +memories: [] +aggregates: + - values: + - I32 + offsets: + - 0 + layout: + size: 4 + align: 4 + decl_to_phys: + - 0 +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_compound_assignment_lowers_to_add_call.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_compound_assignment_lowers_to_add_call.snap new file mode 100644 index 0000000..fe6df9b --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_compound_assignment_lowers_to_add_call.snap @@ -0,0 +1,347 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 405 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Mutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 0 + value: + kind: + Call: + callee: + kind: + Function: + id: 403 + ty: + Function: + signature_index: 0 + arguments: + - kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Aggregate: + aggregate_index: 0 + - kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: Unit + - kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] + - id: 403 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + - kind: Block + parent: 0 + locals: [] + result: I32 + - kind: Block + parent: 0 + locals: [] + result: I32 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Aggregate: + values: + - kind: + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 2 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 0 + value_index: 0 + ty: I32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 3 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 1 + value_index: 0 + ty: I32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Add: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 2 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 3 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + - kind: + Block: + scope_index: 2 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 4 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 0 + value_index: 1 + ty: I32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 5 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 1 + value_index: 1 + ty: I32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Add: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 4 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 5 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] +signatures: + - items: + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + params_count: 2 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 405 + name: 205 +imports: [] +memories: [] +aggregates: + - values: + - I32 + - I32 + offsets: + - 0 + - 4 + layout: + size: 8 + align: 4 + decl_to_phys: + - 0 + - 1 +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_field_access_lowered_to_local_tuple_get.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_field_access_lowered_to_local_tuple_get.snap index b8c8829..45edf9a 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_field_access_lowered_to_local_tuple_get.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_field_access_lowered_to_local_tuple_get.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -34,18 +34,109 @@ signatures: - U32 params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 120 + id: 403 + name: 205 imports: [] memories: [] aggregates: diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_init_lowered_to_struct_create.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_init_lowered_to_struct_create.snap index f695f74..bc3547a 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_init_lowered_to_struct_create.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_init_lowered_to_struct_create.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -49,18 +49,109 @@ signatures: aggregate_index: 0 params_count: 2 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 - items: - U32 - U32 params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 globals: [] exports: - Function: - id: 107 - name: 120 + id: 403 + name: 205 imports: [] memories: [] aggregates: diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_method_call.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_method_call.snap index c818c91..967f10e 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_method_call.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_method_call.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 110 + - id: 406 signature_index: 0 scopes: - kind: Block @@ -11,6 +11,10 @@ functions: locals: - ty: U32 mutability: Immutable + - ty: U32 + mutability: Immutable + - ty: U32 + mutability: Immutable result: U32 - kind: Block parent: 0 @@ -18,28 +22,16 @@ functions: result: U32 - kind: Block parent: 1 - locals: - - ty: U32 - mutability: Immutable - result: U32 - - kind: Block - parent: 2 locals: [] result: U32 - kind: Block - parent: 2 + parent: 1 locals: [] result: U32 - kind: Block - parent: 2 + parent: 1 locals: [] result: Bool - - kind: Block - parent: 5 - locals: - - ty: U32 - mutability: Immutable - result: Bool block: kind: Block: @@ -51,8 +43,8 @@ functions: expressions: - kind: LocalSet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 value: kind: LocalGet: @@ -62,29 +54,29 @@ functions: ty: Unit - kind: Block: - scope_index: 2 + scope_index: 0 expressions: - kind: IfElse: condition: kind: Block: - scope_index: 5 + scope_index: 4 expressions: - kind: LocalSet: - scope_index: 6 - local_index: 0 + scope_index: 0 + local_index: 2 value: kind: LocalGet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 ty: U32 ty: Unit - kind: Block: - scope_index: 6 + scope_index: 0 expressions: - kind: And: @@ -94,8 +86,8 @@ functions: left: kind: LocalGet: - scope_index: 6 - local_index: 0 + scope_index: 0 + local_index: 2 ty: U32 right: kind: @@ -109,8 +101,8 @@ functions: left: kind: LocalGet: - scope_index: 6 - local_index: 0 + scope_index: 0 + local_index: 2 ty: U32 right: kind: @@ -124,15 +116,15 @@ functions: then_block: kind: Block: - scope_index: 3 + scope_index: 2 expressions: - kind: BitXor: left: kind: LocalGet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 ty: U8 right: kind: @@ -144,12 +136,12 @@ functions: else_block: kind: Block: - scope_index: 4 + scope_index: 3 expressions: - kind: LocalGet: - scope_index: 2 - local_index: 0 + scope_index: 0 + local_index: 1 ty: U32 ty: U32 ty: U32 @@ -162,6 +154,97 @@ signatures: - U32 - U32 params_count: 1 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 - items: - U32 - Bool @@ -169,8 +252,8 @@ signatures: globals: [] exports: - Function: - id: 110 - name: 119 + id: 406 + name: 204 imports: [] memories: [] aggregates: [] diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_operator_overload_inline_method_is_substituted.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_operator_overload_inline_method_is_substituted.snap new file mode 100644 index 0000000..a6b6c26 --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_operator_overload_inline_method_is_substituted.snap @@ -0,0 +1,335 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 405 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + - kind: Block + parent: 0 + locals: [] + result: + Aggregate: + aggregate_index: 0 + - kind: Block + parent: 1 + locals: [] + result: I32 + - kind: Block + parent: 1 + locals: [] + result: I32 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 2 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 3 + value: + kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: + Aggregate: + aggregate_index: 0 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Aggregate: + values: + - kind: + Block: + scope_index: 2 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 4 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 2 + value_index: 0 + ty: I32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 5 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 3 + value_index: 0 + ty: I32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Add: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 4 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 5 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + - kind: + Block: + scope_index: 3 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 6 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 2 + value_index: 1 + ty: I32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 7 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 3 + value_index: 1 + ty: I32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Add: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 6 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 7 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] +signatures: + - items: + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + params_count: 2 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 405 + name: 205 +imports: [] +memories: [] +aggregates: + - values: + - I32 + - I32 + offsets: + - 0 + - 4 + layout: + size: 8 + align: 4 + decl_to_phys: + - 0 + - 1 +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_operator_overload_lowers_to_call.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_operator_overload_lowers_to_call.snap new file mode 100644 index 0000000..db72511 --- /dev/null +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__struct_operator_overload_lowers_to_call.snap @@ -0,0 +1,334 @@ +--- +source: crates/wx-compiler/src/mir/tests.rs +expression: case.mir +--- +functions: + - id: 405 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Call: + callee: + kind: + Function: + id: 403 + ty: + Function: + signature_index: 0 + arguments: + - kind: + LocalGet: + scope_index: 0 + local_index: 0 + ty: + Aggregate: + aggregate_index: 0 + - kind: + LocalGet: + scope_index: 0 + local_index: 1 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] + - id: 403 + signature_index: 0 + scopes: + - kind: Block + parent: ~ + locals: + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: + Aggregate: + aggregate_index: 0 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + - ty: I32 + mutability: Immutable + result: + Aggregate: + aggregate_index: 0 + - kind: Block + parent: 0 + locals: [] + result: I32 + - kind: Block + parent: 0 + locals: [] + result: I32 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Aggregate: + values: + - kind: + Block: + scope_index: 1 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 2 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 0 + value_index: 0 + ty: I32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 3 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 1 + value_index: 0 + ty: I32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Add: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 2 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 3 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + - kind: + Block: + scope_index: 2 + expressions: + - kind: + LocalSet: + scope_index: 0 + local_index: 4 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 0 + value_index: 1 + ty: I32 + ty: Unit + - kind: + LocalSet: + scope_index: 0 + local_index: 5 + value: + kind: + AggregateGet: + scope_index: 0 + local_index: 1 + value_index: 1 + ty: I32 + ty: Unit + - kind: + Block: + scope_index: 0 + expressions: + - kind: + Add: + left: + kind: + LocalGet: + scope_index: 0 + local_index: 4 + ty: I32 + right: + kind: + LocalGet: + scope_index: 0 + local_index: 5 + ty: I32 + ty: I32 + ty: I32 + ty: I32 + ty: + Aggregate: + aggregate_index: 0 + ty: + Aggregate: + aggregate_index: 0 + static_data: [] +signatures: + - items: + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + - Aggregate: + aggregate_index: 0 + params_count: 2 + - items: + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 + params_count: 1 + - items: + - U32 + - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool + params_count: 1 +globals: [] +exports: + - Function: + id: 405 + name: 205 +imports: [] +memories: [] +aggregates: + - values: + - I32 + - I32 + offsets: + - 0 + - 4 + layout: + size: 8 + align: 4 + decl_to_phys: + - 0 + - 1 +static_entries: [] +start_function: ~ diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__tuple_type_alias_transparent_in_mir.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__tuple_type_alias_transparent_in_mir.snap index 99835e1..4bbdd93 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__tuple_type_alias_transparent_in_mir.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__tuple_type_alias_transparent_in_mir.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 107 + - id: 403 signature_index: 0 scopes: - kind: Block @@ -41,18 +41,109 @@ signatures: aggregate_index: 0 params_count: 0 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 107 - name: 118 + id: 403 + name: 203 imports: [] memories: [] aggregates: diff --git a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__type_alias_to_struct_transparent_in_mir.snap b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__type_alias_to_struct_transparent_in_mir.snap index 8010f07..cad9202 100644 --- a/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__type_alias_to_struct_transparent_in_mir.snap +++ b/crates/wx-compiler/src/mir/snapshots/wx_compiler__mir__tests__type_alias_to_struct_transparent_in_mir.snap @@ -3,7 +3,7 @@ source: crates/wx-compiler/src/mir/tests.rs expression: case.mir --- functions: - - id: 108 + - id: 404 signature_index: 0 scopes: - kind: Block @@ -34,18 +34,109 @@ signatures: - U32 params_count: 1 - items: - - U32 - - Bool + - F32 + - F32 + params_count: 1 + - items: + - F64 + - F64 + params_count: 1 + - items: + - I32 + - I32 + - I32 + params_count: 2 + - items: + - I32 + - I32 params_count: 1 - items: - U32 - U32 + - U32 + params_count: 2 + - items: + - U32 + - U32 + params_count: 1 + - items: + - I64 + - I64 + - I64 + params_count: 2 + - items: + - I64 + - I64 + params_count: 1 + - items: + - U64 + - U64 + - U64 + params_count: 2 + - items: + - U64 + - U64 + params_count: 1 + - items: + - F32 + - F32 + - F32 + params_count: 2 + - items: + - F64 + - F64 + - F64 + params_count: 2 + - items: + - I8 + - I8 + - I8 + params_count: 2 + - items: + - I8 + - I8 + params_count: 1 + - items: + - U8 + - U8 + - U8 + params_count: 2 + - items: + - U8 + - U8 + params_count: 1 + - items: + - I16 + - I16 + - I16 + params_count: 2 + - items: + - I16 + - I16 + params_count: 1 + - items: + - U16 + - U16 + - U16 + params_count: 2 + - items: + - U16 + - U16 + params_count: 1 + - items: + - Bool + - Bool + - Bool + params_count: 2 + - items: + - U32 + - Bool params_count: 1 globals: [] exports: - Function: - id: 108 - name: 121 + id: 404 + name: 206 imports: [] memories: [] aggregates: diff --git a/crates/wx-compiler/src/mir/tests.rs b/crates/wx-compiler/src/mir/tests.rs index f0959c6..6fb94b3 100644 --- a/crates/wx-compiler/src/mir/tests.rs +++ b/crates/wx-compiler/src/mir/tests.rs @@ -316,7 +316,7 @@ fn test_memory_data_end_lowers_to_memory_offset() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - pub fn f() -> heap::*u8 { + pub fn f() -> heap::&u8 { heap::DATA_END } @@ -347,7 +347,7 @@ fn test_slice_len_lowers_to_aggregate_get() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - pub fn f(s: heap::[]u8) -> u32 { + pub fn f(s: heap::&[u8]) -> u32 { slice_len(s) } @@ -364,7 +364,7 @@ fn test_slice_from_parts_lowers_to_aggregate() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - pub fn f(ptr: heap::*u8, len: u32) -> heap::[]u8 { + pub fn f(ptr: heap::&u8, len: u32) -> heap::&[u8] { slice_from_parts(ptr, len) } @@ -1120,7 +1120,7 @@ fn test_multiple_calls_to_generic_produce_single_mono_instance() { // ───────────────────────────────────────────────────────────── // String literal tests removed: `string` is no longer a named struct type; -// string literals produce `[]u8` slices. Static-data coverage is provided +// string literals produce `&[u8]` slices. Static-data coverage is provided // by the array literal tests below. // ── arrays @@ -1128,11 +1128,11 @@ fn test_multiple_calls_to_generic_produce_single_mono_instance() { #[test] fn test_array_literal_bytes_are_little_endian() { - // [1, 2, 3] as heap::[3]i32 → 12 bytes encoding each value as 32-bit LE. + // [1, 2, 3] as heap::&[i32; 3] → 12 bytes encoding each value as 32-bit LE. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - fn get() -> heap::[3]i32 { - local arr: heap::[3]i32 = [1, 2, 3]; + fn get() -> heap::&[i32; 3] { + local arr: heap::&[i32; 3] = [1, 2, 3]; arr } export { get } @@ -1151,11 +1151,11 @@ fn test_array_literal_bytes_are_little_endian() { #[test] fn test_array_repeat_bytes_repeated() { - // [7; 4] as heap::[4]u8 → four bytes each equal to 7. + // [7; 4] as heap::&[u8; 4] → four bytes each equal to 7. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - fn get() -> heap::[4]u8 { - local arr: heap::[4]u8 = [7; 4]; + fn get() -> heap::&[u8; 4] { + local arr: heap::&[u8; 4] = [7; 4]; arr } export { get } @@ -1172,8 +1172,8 @@ fn test_array_dce_removes_static_data_ownership() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; fn live() -> i32 { 42 } - fn dead() -> heap::[3]i32 { - local arr: heap::[3]i32 = [1, 2, 3]; + fn dead() -> heap::&[i32; 3] { + local arr: heap::&[i32; 3] = [1, 2, 3]; arr } export { live } @@ -1196,16 +1196,16 @@ fn test_static_entry_alignment_matches_element_type() { // i32 elements → align 4; f64 elements → align 8; u8 elements → align 1. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - fn ints() -> heap::[2]i32 { - local a: heap::[2]i32 = [10, 20]; + fn ints() -> heap::&[i32; 2] { + local a: heap::&[i32; 2] = [10, 20]; a } - fn doubles() -> heap::[2]f64 { - local b: heap::[2]f64 = [1.0; 2]; + fn doubles() -> heap::&[f64; 2] { + local b: heap::&[f64; 2] = [1.0; 2]; b } - fn bytes() -> heap::[2]u8 { - local c: heap::[2]u8 = [1; 2]; + fn bytes() -> heap::&[u8; 2] { + local c: heap::&[u8; 2] = [1; 2]; c } export { ints, doubles, bytes } @@ -1272,17 +1272,17 @@ fn test_size_of_generic_monomorphizes() { #[test] fn test_generic_impl_slice_count_method_lowers_correctly() { // Uses `count`, not `len`, to avoid colliding with the stdlib's own - // `impl M::[]T { fn len(...) }`. + // `impl M::&[T] { fn len(...) }`. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - impl M::[]T { + impl M::&[T] { pub fn count(self) -> M::Size { slice_len(self) } } - pub fn get_len(s: heap::[]u8) -> u32 { + pub fn get_len(s: heap::&[u8]) -> u32 { s.count() } @@ -1303,7 +1303,7 @@ fn test_compound_assign_through_ptr_deref_on_struct_field() { cap: u32, } - fn increment_len(p: heap::*mut Vec) { + fn increment_len(p: heap::*Vec) { p.*.len += 1; } @@ -1330,12 +1330,12 @@ fn test_generic_compound_assign_through_ptr_deref() { } impl Vec { - pub fn increment_len(self: heap::*mut Self) { + pub fn increment_len(self: heap::*Self) { self.*.len += 1; } } - fn call_it(p: heap::*mut Vec) { + fn call_it(p: heap::*Vec) { p.increment_len(); } @@ -1357,9 +1357,9 @@ fn test_string_literal_dedup_is_per_memory() { memory first: Memory where { Size = u32 }; memory second: Memory where { Size = u32 }; - fn a() -> first::[]u8 { \"hi\" } - fn b() -> second::[]u8 { \"hi\" } - fn c() -> first::[]u8 { \"hi\" } + fn a() -> first::&[u8] { \"hi\" } + fn b() -> second::&[u8] { \"hi\" } + fn c() -> first::&[u8] { \"hi\" } export { a, b, c } "}); @@ -1460,3 +1460,204 @@ fn test_match_exhaustive_enum_no_wildcard_has_no_default() { "exhaustive enum match without `_` should lower with no default arm" ); } + +// ── struct operator-trait impls +// ────────────────────────────────────────── + +#[test] +fn test_struct_operator_overload_lowers_to_call() { + // Not `#[inline]`, so `a + b` must lower to a genuine `Call` targeting + // the resolved `Vec2::add` — the struct-target counterpart of every + // other operator-dispatch test, which only ever exercises primitives. + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + fn add_vec2(a: Vec2, b: Vec2) -> Vec2 { + a + b + } + + export { add_vec2 } + "}); + insta::assert_yaml_snapshot!(case.mir); +} + +#[test] +fn test_struct_operator_overload_inline_method_is_substituted() { + // Same as above but `#[inline]`, matching the convention every primitive + // impl in `std/main.wx` already uses — the snapshot should show the + // struct-field arithmetic substituted directly, no Call node left. + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + fn add_vec2(a: Vec2, b: Vec2) -> Vec2 { + a + b + } + + export { add_vec2 } + "}); + insta::assert_yaml_snapshot!(case.mir); +} + +#[test] +fn test_struct_bitand_overload_lowers_to_call() { + // Bitwise operators reuse the same dispatch path as arithmetic + // (`build_operator_dispatch`) once a struct is involved — same shape + // as `test_struct_operator_overload_lowers_to_call`, just for `&`. + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + impl BitAnd for Flags { + fn bitand(self: Self, rhs: Self) -> Self { + Flags::{ bits: self.bits & rhs.bits } + } + } + + fn and_flags(a: Flags, b: Flags) -> Flags { + a & b + } + + export { and_flags } + "}); + insta::assert_yaml_snapshot!(case.mir); +} + +#[test] +fn test_struct_bitand_overload_inline_method_is_substituted() { + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + impl BitAnd for Flags { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { + Flags::{ bits: self.bits & rhs.bits } + } + } + + fn and_flags(a: Flags, b: Flags) -> Flags { + a & b + } + + export { and_flags } + "}); + insta::assert_yaml_snapshot!(case.mir); +} + +#[test] +fn test_struct_bitnot_overload_lowers_to_call() { + // Unary `^x` reuses the same dispatch path as `-x` (`Neg`) once a + // struct is involved (`build_unary_operator_dispatch`) — same shape + // as the binary struct-overload tests, for the one unary bitwise op. + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + impl BitNot for Flags { + fn bitnot(self: Self) -> Self { + Flags::{ bits: ^self.bits } + } + } + + fn not_flags(a: Flags) -> Flags { + ^a + } + + export { not_flags } + "}); + insta::assert_yaml_snapshot!(case.mir); +} + +#[test] +fn test_struct_bitnot_overload_inline_method_is_substituted() { + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + impl BitNot for Flags { + #[inline] + fn bitnot(self: Self) -> Self { + Flags::{ bits: ^self.bits } + } + } + + fn not_flags(a: Flags) -> Flags { + ^a + } + + export { not_flags } + "}); + insta::assert_yaml_snapshot!(case.mir); +} + +#[test] +fn test_generic_bitand_bound_resolves_to_primitive_impl() { + // A bare type param bounded by `BitAnd` must dispatch through + // `resolve_bounded_operator_method` and monomorphize to `i32`'s own + // (native-fast-path-backed) impl — the generic-bound counterpart of + // the struct tests above, exercising primitives instead. + let case = TestCase::new(indoc! {" + fn and_it(a: T, b: T) -> T { + a & b + } + + fn use_and(a: i32, b: i32) -> i32 { + and_it(a, b) + } + + export { use_and } + "}); + insta::assert_yaml_snapshot!(case.mir); +} + +#[test] +fn test_generic_bitnot_bound_resolves_to_primitive_impl() { + // Unary counterpart of `test_generic_bitand_bound_resolves_to_primitive_impl` + // — `build_unary_operator_dispatch` previously had no `Type::TypeParam` + // branch, so a bare type param bounded by `BitNot` failed to dispatch + // at all. Now it goes through `resolve_bounded_operator_method` and + // monomorphizes to `i32`'s own (native-fast-path-backed) impl, same as + // the binary case. + let case = TestCase::new(indoc! {" + fn not_it(a: T) -> T { + ^a + } + + fn use_not(a: i32) -> i32 { + not_it(a) + } + + export { use_not } + "}); + insta::assert_yaml_snapshot!(case.mir); +} + +#[test] +fn test_struct_compound_assignment_lowers_to_add_call() { + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + fn add_assign_vec2(mut a: Vec2, b: Vec2) -> Vec2 { + a += b; + a + } + + export { add_assign_vec2 } + "}); + insta::assert_yaml_snapshot!(case.mir); +} diff --git a/crates/wx-compiler/src/opt/builder.rs b/crates/wx-compiler/src/opt/builder.rs index 03ca22b..c891dbd 100644 --- a/crates/wx-compiler/src/opt/builder.rs +++ b/crates/wx-compiler/src/opt/builder.rs @@ -128,10 +128,10 @@ impl<'mir> Builder<'mir> { /// (`*wasm_idx` tracks the next free slot across the whole call). A /// scalar parameter is just one `Param` node; an aggregate parameter — /// possibly nested — is passed as a flattened run of scalar WASM params - /// (mirroring how `flatten_mir_type`/signature flattening lays out a - /// call site's arguments), so this recurses to rebuild the matching - /// (possibly nested) `Aggregate` literal from them, in the same - /// pre-order `flatten_mir_type` itself would visit. + /// (mirroring how `wasm::flatten_type_to_scalars`/signature flattening + /// lays out a call site's arguments), so this recurses to rebuild the + /// matching (possibly nested) `Aggregate` literal from them, in the same + /// pre-order `wasm::flatten_type_to_scalars` itself would visit. fn build_param_value( &mut self, ty: mir::Type, @@ -353,6 +353,15 @@ impl<'mir> Builder<'mir> { self.node(DataNodeKind::Ceil { operand, ty }), ) } + ExprKind::Trunc { value } => { + let ty = ScalarType::try_from(expr.ty) + .expect("Trunc must be scalar"); + let operand = + self.build_expr(block_idx, bindings, value).unwrap_value(); + StackResult::Value( + self.node(DataNodeKind::Trunc { operand, ty }), + ) + } ExprKind::BitNot { value } => { let ty = ScalarType::try_from(expr.ty) .expect("BitNot must be scalar"); @@ -1643,26 +1652,53 @@ impl<'mir> Builder<'mir> { // ── Binding helpers ─────────────────────────────────────────────────────── - /// Extend `parent` bindings with the locals of `scope_index`. + /// Extend `parent` bindings with the locals of `scope_index`, seeding + /// each with a default value — unless it's already been written, which + /// happens when an inlined call's `LocalSet`s bind this scope's locals + /// (via their global `flat_index`) *before* the scope's own `Block` node + /// is reached (`mir::inlining::inline_call` emits the argument + /// `LocalSet`s as siblings preceding the callee's body block, not as + /// its first statements). Blindly appending a default in that case + /// would push it past the slot the `LocalSet` already populated, + /// producing a node nothing ever references. fn extend_bindings( &mut self, parent: &[StackResult], scope_index: mir::ScopeIndex, ) -> Vec { let mut child = parent.to_vec(); - for local in &self.mir_func.scopes[scope_index as usize].locals { + for (i, local) in self.mir_func.scopes[scope_index as usize] + .locals + .iter() + .enumerate() + { + let idx = self.flat_index(scope_index, i as mir::LocalIndex); + if idx < child.len() { + continue; + } + debug_assert_eq!(idx, child.len()); child.push(self.default_value(local.ty)); } child } - /// Extend `bindings` in-place with the locals of `scope_index`. + /// In-place counterpart of `extend_bindings` — see its doc comment for + /// why already-written slots must be skipped rather than defaulted. fn extend_bindings_in_place( &mut self, bindings: &mut Vec, scope_index: mir::ScopeIndex, ) { - for local in &self.mir_func.scopes[scope_index as usize].locals { + for (i, local) in self.mir_func.scopes[scope_index as usize] + .locals + .iter() + .enumerate() + { + let idx = self.flat_index(scope_index, i as mir::LocalIndex); + if idx < bindings.len() { + continue; + } + debug_assert_eq!(idx, bindings.len()); bindings.push(self.default_value(local.ty)); } } diff --git a/crates/wx-compiler/src/opt/liveness.rs b/crates/wx-compiler/src/opt/liveness.rs index 406fe96..3a2b532 100644 --- a/crates/wx-compiler/src/opt/liveness.rs +++ b/crates/wx-compiler/src/opt/liveness.rs @@ -202,6 +202,7 @@ fn mark_node_inputs_live( | DataNodeKind::Abs { operand, .. } | DataNodeKind::Floor { operand, .. } | DataNodeKind::Ceil { operand, .. } + | DataNodeKind::Trunc { operand, .. } | DataNodeKind::BitNot { operand, .. } | DataNodeKind::Eqz { operand } | DataNodeKind::I64ExtendI32S { operand } diff --git a/crates/wx-compiler/src/opt/mod.rs b/crates/wx-compiler/src/opt/mod.rs index c7f274c..e3d9d91 100644 --- a/crates/wx-compiler/src/opt/mod.rs +++ b/crates/wx-compiler/src/opt/mod.rs @@ -21,20 +21,12 @@ pub mod scheduler; #[cfg(test)] mod tests; +pub use crate::wasm::ScalarType; use crate::{ast, mir}; pub type DataNodeIndex = u32; pub type BlockIndex = u32; -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] -#[cfg_attr(test, derive(serde::Serialize))] -pub enum ScalarType { - I32, - I64, - F32, - F64, -} - /// Sign only matters for narrow loads: `i32.load8_s` vs `i32.load8_u`. /// Full-width loads and stores are always unsigned. #[derive(Clone, Copy, PartialEq, Eq, Hash)] @@ -91,41 +83,6 @@ impl MemAccess { } } -impl TryFrom for ScalarType { - type Error = (); - fn try_from(ty: mir::Type) -> Result { - Ok(match ty { - mir::Type::I32 - | mir::Type::U32 - | mir::Type::Bool - | mir::Type::U8 - | mir::Type::I8 - | mir::Type::U16 - | mir::Type::I16 - | mir::Type::Function { .. } => ScalarType::I32, - mir::Type::I64 | mir::Type::U64 => ScalarType::I64, - mir::Type::Pointer { kind, .. } => match kind { - mir::MemoryKind::Memory32 => ScalarType::I32, - mir::MemoryKind::Memory64 => ScalarType::I64, - }, - mir::Type::F32 => ScalarType::F32, - mir::Type::F64 => ScalarType::F64, - _ => return Err(()), - }) - } -} - -impl From for crate::codegen::ValueType { - fn from(ty: ScalarType) -> Self { - match ty { - ScalarType::I32 => crate::codegen::ValueType::I32, - ScalarType::I64 => crate::codegen::ValueType::I64, - ScalarType::F32 => crate::codegen::ValueType::F32, - ScalarType::F64 => crate::codegen::ValueType::F64, - } - } -} - #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum NodeType { Scalar(ScalarType), @@ -289,6 +246,10 @@ pub enum DataNodeKind { operand: DataNodeIndex, ty: ScalarType, }, + Trunc { + operand: DataNodeIndex, + ty: ScalarType, + }, BitNot { operand: DataNodeIndex, ty: ScalarType, @@ -493,6 +454,7 @@ impl DataNodeKind { | DataNodeKind::Abs { ty, .. } | DataNodeKind::Floor { ty, .. } | DataNodeKind::Ceil { ty, .. } + | DataNodeKind::Trunc { ty, .. } | DataNodeKind::BitNot { ty, .. } | DataNodeKind::AggregateGet { ty, .. } | DataNodeKind::Phi { ty, .. } @@ -916,6 +878,7 @@ impl Function { | DataNodeKind::Abs { operand, .. } | DataNodeKind::Floor { operand, .. } | DataNodeKind::Ceil { operand, .. } + | DataNodeKind::Trunc { operand, .. } | DataNodeKind::BitNot { operand, .. } | DataNodeKind::Eqz { operand } | DataNodeKind::I64ExtendI32S { operand } diff --git a/crates/wx-compiler/src/opt/scheduler.rs b/crates/wx-compiler/src/opt/scheduler.rs index 6a257d0..84c3dd6 100644 --- a/crates/wx-compiler/src/opt/scheduler.rs +++ b/crates/wx-compiler/src/opt/scheduler.rs @@ -18,262 +18,24 @@ //! //! # Output //! -//! The scheduler produces a [`ScheduledFunction`] containing +//! The scheduler produces a [`wasm::Function`] containing //! - the extra WASM locals needed for spilled nodes (appended after params) //! - a flat `Vec` for the function body //! -//! Encoding [`Instruction`]s to bytes is left to the codegen layer. +//! `wasm::Function`/`Instruction` and everything else describing that +//! output shape live in `crate::wasm` — not here, since `codegen` (the sole +//! consumer, which does the actual byte encoding) needs them independent +//! of this module's own sea-of-nodes-specific types. use std::collections::HashMap; -use crate::codegen::ValueType; use crate::mir; use crate::opt::liveness::DataLiveness; use crate::opt::{ BlockIndex, ControlNode, DataNode, DataNodeIndex, DataNodeKind, Function, MemAccess, ScalarType, StackResult, SwitchCase, }; - -// ── Output types -// ────────────────────────────────────────────────────────────── - -/// The `memarg` immediate carried by every WebAssembly memory instruction. -#[cfg_attr(test, derive(Debug, serde::Serialize))] -#[derive(Clone, Copy)] -pub struct MemArg { - /// Log2 of the alignment hint in bytes (e.g. 2 = 4-byte aligned). - pub align: u32, - /// Static byte offset added to the runtime address. - pub offset: u32, - pub memory: crate::ast::DefId, -} - -/// A WASM local variable declaration. -#[cfg_attr(test, derive(serde::Serialize))] -#[cfg_attr(test, serde(transparent))] -pub struct Local { - pub ty: ScalarType, -} - -#[cfg_attr(test, derive(serde::Serialize))] -pub struct ScheduledFunction { - /// Locals in declaration order (params first, then spill slots). - pub locals: Vec, - /// Flat WASM stack-machine instruction sequence for the function body. - pub body: Vec, -} - -/// A subset of WASM instructions produced by the scheduler. -/// Each variant maps 1-to-1 to a WASM opcode; operands are pushed onto the -/// implicit value stack by the preceding instructions. -#[cfg_attr(test, derive(Debug, serde::Serialize))] -#[derive(Clone)] -pub enum Instruction { - // Constants - I32Const(i32), - I64Const(i64), - F32Const(f32), - F64Const(f64), - // Locals - LocalGet(u32), - LocalSet(u32), - LocalTee(u32), - // Globals - GlobalGet(crate::ast::DefId), - GlobalSet(crate::ast::DefId), - // Arithmetic — i32 - I32Add, - I32Sub, - I32Mul, - I32DivS, - I32DivU, - I32RemS, - I32RemU, - I32And, - I32Or, - I32Xor, - I32Shl, - I32ShrS, - I32ShrU, - I32Eqz, - I32Eq, - I32Ne, - I32LtS, - I32LtU, - I32LeS, - I32LeU, - I32GtS, - I32GtU, - I32GeS, - I32GeU, - I32Clz, - I32Ctz, - // Arithmetic — i64 - I64Add, - I64Sub, - I64Mul, - I64DivS, - I64DivU, - I64RemS, - I64RemU, - I64And, - I64Or, - I64Xor, - I64Shl, - I64ShrS, - I64ShrU, - I64Eqz, - I64Eq, - I64Ne, - I64LtS, - I64LtU, - I64LeS, - I64LeU, - I64GtS, - I64GtU, - I64GeS, - I64GeU, - // Arithmetic — f32 / f64 - F32Add, - F32Sub, - F32Mul, - F32Div, - F32Neg, - F32Sqrt, - F32Abs, - F32Floor, - F32Ceil, - F64Add, - F64Sub, - F64Mul, - F64Div, - F64Neg, - F64Sqrt, - F64Abs, - F64Floor, - F64Ceil, - F32Eq, - F32Ne, - F32Lt, - F32Le, - F32Gt, - F32Ge, - F64Eq, - F64Ne, - F64Lt, - F64Le, - F64Gt, - F64Ge, - // Control flow - Block { - ty: BlockType, - }, - Loop { - ty: BlockType, - }, - If { - ty: BlockType, - }, - Else, - End, - Br(u32), // break by depth - BrIf(u32), - /// Branch depth per shifted-selector index, covering every index in the - /// case set's `[min, max]` range (including gaps), followed by the - /// default depth as the trailing element — i.e. `depths[i]` for - /// `i < depths.len() - 1`, `depths[depths.len() - 1]` for anything else - /// (per WASM semantics: an out-of-table index, including one that went - /// negative before being reinterpreted as unsigned, always falls to the - /// default). One field instead of a separate `default_depth` since the - /// encoder needs the exact same split either way. - BrTable(Box<[u32]>), - Return, - Unreachable, - Drop, - // Calls - /// Direct call; the encoder resolves the WASM function index from - /// `func_wasm_index`, covering both internal and imported functions. - Call(crate::ast::DefId), - /// Indirect call via the function table; the encoder resolves `type_index` - /// from the referenced MIR signature. - CallIndirectSym { - mir_sig_index: u32, - }, - // Memory - MemorySize(crate::ast::DefId), - MemoryGrow(crate::ast::DefId), - MemoryFill(crate::ast::DefId), - MemoryCopy { - dst: crate::ast::DefId, - src: crate::ast::DefId, - }, - /// Wasm linear-memory index as an `i32.const`, resolved at codegen. - MemoryIndex { - memory: crate::ast::DefId, - }, - // Pointer load/store - I32Load8S(MemArg), - I32Load8U(MemArg), - I32Load16S(MemArg), - I32Load16U(MemArg), - I32Load(MemArg), - I64Load(MemArg), - F32Load(MemArg), - F64Load(MemArg), - I32Store8(MemArg), - I32Store16(MemArg), - I32Store(MemArg), - I64Store(MemArg), - F32Store(MemArg), - F64Store(MemArg), - // Conversion - I64ExtendI32S, - I64ExtendI32U, - I32WrapI64, - F32ConvertI32S, - F32ConvertI32U, - F32ConvertI64S, - F32ConvertI64U, - F64ConvertI32S, - F64ConvertI32U, - F64ConvertI64S, - F64ConvertI64U, - I32TruncF32S, - I32TruncF32U, - I32TruncF64S, - I32TruncF64U, - I64TruncF32S, - I64TruncF32U, - I64TruncF64S, - I64TruncF64U, - F64PromoteF32, - F32DemoteF64, - // Nop (used as a placeholder) - Nop, - // Symbolic references — resolved to concrete i32.const values by the - // codegen encoder, which has access to the string pool and function table. - /// A function referenced as a value; the encoder pushes it into the - /// function table and emits `i32.const `. - FunctionPointer(crate::ast::DefId), - /// End of the static data section for a given memory (base of writable - /// heap); the encoder emits `i32.const `. - DataSectionEnd { - memory: crate::ast::DefId, - }, - /// A static array; the encoder resolves the index to a byte offset in the - /// data segment and emits `i32.const `. - StaticDataPointer { - data_index: u32, - ty: ScalarType, - }, -} - -#[cfg_attr(test, derive(Debug, serde::Serialize))] -#[derive(Clone, Copy)] -pub enum BlockType { - Empty, - Value(ValueType), -} +use crate::wasm::{self, BlockType, Instruction, Local, MemArg}; // ── Scheduler // ───────────────────────────────────────────────────────────────── @@ -293,6 +55,9 @@ pub struct Scheduler<'f> { node_to_aggregate_locals: HashMap>, /// Output instruction stream. body: Vec, + /// Flat arena backing every emitted `Instruction::BrTable` — see + /// `wasm::Function::br_table_depths`. + br_table_depths: Vec, /// Placement decisions for pure values read from more than one block — /// computed once by `compute_value_placement` before emission starts, /// consulted (and drained, one block at a time) by `emit_block`. Indexed @@ -303,10 +68,7 @@ pub struct Scheduler<'f> { } impl<'f> Scheduler<'f> { - pub fn schedule( - func: &'f Function, - mir: &'f mir::MIR, - ) -> ScheduledFunction { + pub fn schedule(func: &'f Function, mir: &'f mir::MIR) -> wasm::Function { let sig = &mir.signatures[{ // Find the function's signature via its DefId. mir.functions @@ -321,7 +83,7 @@ impl<'f> Scheduler<'f> { .params() .iter() .copied() - .flat_map(|ty| Self::flatten_mir_type(ty, &mir.aggregates)) + .flat_map(|ty| wasm::flatten_type_to_scalars(ty, &mir.aggregates)) .map(|ty| Local { ty }) .collect(); let params_count = locals.len(); @@ -334,6 +96,7 @@ impl<'f> Scheduler<'f> { node_to_local: HashMap::new(), node_to_aggregate_locals: HashMap::new(), body: Vec::new(), + br_table_depths: Vec::new(), placement_by_block: Vec::new(), }; sched.placement_by_block = sched.compute_value_placement(); @@ -344,12 +107,13 @@ impl<'f> Scheduler<'f> { sched.body.pop(); } - coalesce_locals(&mut sched.body, &mut sched.locals, params_count); - peephole_local_tee(&mut sched.body); + wasm::coalesce_locals(&mut sched.body, &mut sched.locals, params_count); + wasm::peephole_local_tee(&mut sched.body); - ScheduledFunction { + wasm::Function { locals: sched.locals, body: sched.body, + br_table_depths: sched.br_table_depths, } } @@ -1235,6 +999,7 @@ impl<'f> Scheduler<'f> { | DataNodeKind::Abs { operand, .. } | DataNodeKind::Floor { operand, .. } | DataNodeKind::Ceil { operand, .. } + | DataNodeKind::Trunc { operand, .. } | DataNodeKind::BitNot { operand, .. } | DataNodeKind::Eqz { operand } | DataNodeKind::I64ExtendI32S { operand } @@ -1582,6 +1347,14 @@ impl<'f> Scheduler<'f> { _ => unimplemented!(), }); } + DataNodeKind::Trunc { operand, ty } => { + self.emit_value(operand); + self.body.push(match ty { + ScalarType::F32 => Instruction::F32Trunc, + ScalarType::F64 => Instruction::F64Trunc, + _ => unimplemented!(), + }); + } DataNodeKind::BitNot { operand, ty } => { // WASM has no bitwise-not; emit `x ^ -1`. self.emit_value(operand); @@ -1812,7 +1585,8 @@ impl<'f> Scheduler<'f> { .values[..field_index as usize] .iter() .map(|&t| { - Self::flatten_mir_type(t, &self.mir.aggregates).len() + wasm::flatten_type_to_scalars(t, &self.mir.aggregates) + .len() }) .sum(); let field_local = @@ -1896,31 +1670,13 @@ impl<'f> Scheduler<'f> { } } - /// Recursively flatten a MIR type into its constituent scalar types. - /// Mirrors `codegen::Builder::flatten_type` but yields `ScalarType`. - fn flatten_mir_type( - ty: mir::Type, - aggregates: &[mir::Aggregate], - ) -> Vec { - match ty { - mir::Type::Unit | mir::Type::Never => vec![], - mir::Type::Aggregate { aggregate_index } => aggregates - [aggregate_index as usize] - .values - .iter() - .flat_map(|&f| Self::flatten_mir_type(f, aggregates)) - .collect(), - _ => vec![ScalarType::try_from(ty).expect("must be scalar")], - } - } - /// Ensure per-*leaf* WASM locals exist for an `Aggregate` node. /// Emits each scalar field expression and spills it to a fresh local; a /// field that is itself an aggregate has no local of its own — it's /// walked into recursively, and its own (already- or newly-computed) /// leaf locals are spliced in directly, so `node_to_aggregate_locals` /// always ends up holding one entry per *leaf* scalar, flattened in the - /// same pre-order as `flatten_mir_type`. Records the mapping in + /// same pre-order as `wasm::flatten_type_to_scalars`. Records the mapping in /// `node_to_aggregate_locals`. /// /// For `AggregateCallResult` nodes this must never be called — their locals @@ -2140,8 +1896,12 @@ impl<'f> Scheduler<'f> { self.body.push(Instruction::LocalGet(selector_local)); self.body.push(Instruction::I32Const(min as i32)); self.body.push(Instruction::I32Sub); - self.body - .push(Instruction::BrTable(depths.into_boxed_slice())); + let start = self.br_table_depths.len() as u32; + self.br_table_depths.extend_from_slice(&depths); + self.body.push(Instruction::BrTable { + start, + len: depths.len() as u32, + }); for (i, case) in cases.iter().enumerate() { self.body.push(Instruction::End); // end $case[i] @@ -2249,7 +2009,7 @@ impl<'f> Scheduler<'f> { StackResult::Value(node) => { let ty = self.func.data_nodes[node as usize].kind.unwrap_scalar(); - BlockType::Value(ValueType::from(ty)) + BlockType::Value(ty) } _ => BlockType::Empty, } @@ -2265,233 +2025,3 @@ fn push_unique_block(blocks: &mut Vec, block: BlockIndex) { blocks.push(block); } } - -// ── Local coalescing ────────────────────────────────────────────────────────── - -/// Reuse WASM local slots for spilled values whose live ranges do not overlap. -/// -/// Each spill slot has a live range `[first_write, last_read]` measured in flat -/// instruction-list positions. Two slots of the same WASM type can share a slot -/// number when one range ends strictly before the other begins. -/// -/// Param slots (indices `0..params_count`) are never remapped — WASM passes -/// arguments via the first N locals and the ABI cannot be changed. -fn coalesce_locals( - body: &mut [Instruction], - locals: &mut Vec, - params_count: usize, -) { - let n = locals.len(); - if n <= params_count { - return; - } - - // ── Step 1: compute live ranges ────────────────────────────────────────── - let mut first_write = vec![usize::MAX; n]; - let mut last_read = vec![0usize; n]; - - for (i, instr) in body.iter().enumerate() { - match instr { - Instruction::LocalSet(s) => { - let s = *s as usize; - if s >= params_count { - first_write[s] = first_write[s].min(i); - } - } - Instruction::LocalGet(s) => { - let s = *s as usize; - if s >= params_count { - last_read[s] = last_read[s].max(i); - } - } - Instruction::LocalTee(s) => { - let s = *s as usize; - if s >= params_count { - first_write[s] = first_write[s].min(i); - last_read[s] = last_read[s].max(i); - } - } - _ => {} - } - } - - // A `[first_write, last_read]` window computed from flat textual positions - // is only valid for straight-line code: it implicitly assumes every - // instruction executes at most once. `Loop` is the one construct that - // breaks that assumption — its body is a single textual span that - // actually runs many times, via a back-edge (`Br`) to the `Loop` - // instruction itself. A slot written once before the loop and read once - // inside it gets `last_read` pinned to that first textual occurrence, - // even though the same read recurs on every later iteration. If some - // other slot's write/read pair falls entirely after that position but - // still inside the loop body, the ranges look non-overlapping and the - // allocator happily hands them the same physical local — which then - // gets clobbered by the second slot's write before the first slot's - // value is read again on the next iteration. - // - // Fix: widen every slot touched anywhere inside a loop so its range - // covers that loop's entire `[Loop, End]` span (and transitively every - // loop it's nested in, since the same argument applies at each nesting - // level). Two slots both live inside the same loop then always overlap - // and can never be coalesced together, which is what correctness under - // repeated execution requires. - let mut frame_starts: Vec = Vec::new(); - let mut loop_spans: Vec<(usize, usize)> = Vec::new(); - for (i, instr) in body.iter().enumerate() { - match instr { - Instruction::Block { .. } | Instruction::If { .. } => { - frame_starts.push(usize::MAX); - } - Instruction::Loop { .. } => { - frame_starts.push(i); - } - Instruction::End => { - if let Some(start) = frame_starts.pop() { - if start != usize::MAX { - loop_spans.push((start, i)); - } - } - } - _ => {} - } - } - - for &(ls, le) in &loop_spans { - for instr in &body[ls..=le] { - let s = match instr { - Instruction::LocalGet(s) - | Instruction::LocalSet(s) - | Instruction::LocalTee(s) => *s as usize, - _ => continue, - }; - if s >= params_count { - first_write[s] = first_write[s].min(ls); - last_read[s] = last_read[s].max(le); - } - } - } - - // Normalize: dead stores (written, never read) collapse to a point range. - // Slots never written (shouldn't normally happen) get range [0, 0]. - for s in params_count..n { - if first_write[s] == usize::MAX { - first_write[s] = 0; - } - if last_read[s] < first_write[s] { - last_read[s] = first_write[s]; - } - } - - // ── Step 2: linear scan ────────────────────────────────────────────────── - let mut order: Vec = (params_count..n).collect(); - order.sort_unstable_by_key(|&s| first_write[s]); - - let ty_idx = |ty: ScalarType| match ty { - ScalarType::I32 => 0usize, - ScalarType::I64 => 1, - ScalarType::F32 => 2, - ScalarType::F64 => 3, - }; - - // Per-type free lists of slot numbers available for reuse. - let mut free: [Vec; 4] = - [Vec::new(), Vec::new(), Vec::new(), Vec::new()]; - // Active intervals: (last_read, new_slot_number, type_index). - let mut active: Vec<(usize, u32, usize)> = Vec::new(); - let mut next_slot = params_count as u32; - let mut mapping = vec![0u32; n]; - for (i, slot) in mapping.iter_mut().enumerate().take(params_count) { - *slot = i as u32; - } - - for old in order { - let start = first_write[old]; - let end = last_read[old]; - let ti = ty_idx(locals[old].ty); - - // Expire intervals that ended strictly before this one starts. - let mut i = 0; - while i < active.len() { - if active[i].0 < start { - let (_, freed, freed_ti) = active.swap_remove(i); - free[freed_ti].push(freed); - } else { - i += 1; - } - } - - let new_slot = free[ti].pop().unwrap_or_else(|| { - let s = next_slot; - next_slot += 1; - s - }); - - mapping[old] = new_slot; - active.push((end, new_slot, ti)); - } - - // ── Step 3: rebuild locals and rewrite instructions ────────────────────── - let new_spill_count = (next_slot - params_count as u32) as usize; - let mut spill_types = vec![ScalarType::I32; new_spill_count]; - for old in params_count..n { - let new = mapping[old] as usize; - if new >= params_count { - spill_types[new - params_count] = locals[old].ty; - } - } - locals.truncate(params_count); - locals.extend(spill_types.into_iter().map(|ty| Local { ty })); - - for instr in body.iter_mut() { - match instr { - Instruction::LocalGet(s) - | Instruction::LocalSet(s) - | Instruction::LocalTee(s) => { - *s = mapping[*s as usize]; - } - _ => {} - } - } -} - -/// Replace `LocalSet(n), LocalGet(n)` pairs with a single `LocalTee(n)`, -/// and eliminate `LocalTee(n), LocalSet(n)` by dropping the redundant tee. -/// -/// `local.tee` writes the top-of-stack value to the local *and* leaves a copy -/// on the stack, which is exactly what set+get does in two instructions. -/// Conversely, `local.tee(n)` immediately followed by `local.set(n)` writes -/// the same value to the local twice — the tee is redundant; a plain set suffices. -fn peephole_local_tee(body: &mut Vec) { - let mut out = Vec::with_capacity(body.len()); - let mut i = 0; - while i < body.len() { - if let Instruction::LocalSet(s) = body[i] { - // set(N), get(N), set(N) → set(N): the middle get feeds back into a set - // of the same slot, so both the tee and the redundant write collapse. - if i + 2 < body.len() { - if let (Instruction::LocalGet(g), Instruction::LocalSet(s2)) = - (&body[i + 1], &body[i + 2]) - { - if *g == s && *s2 == s { - out.push(Instruction::LocalSet(s)); - i += 3; - continue; - } - } - } - // set(N), get(N) → tee(N) - if i + 1 < body.len() { - if let Instruction::LocalGet(g) = body[i + 1] { - if s == g { - out.push(Instruction::LocalTee(s)); - i += 2; - continue; - } - } - } - } - out.push(body[i].clone()); - i += 1; - } - *body = out; -} diff --git a/crates/wx-compiler/src/opt/snapshots/wx_compiler__opt__tests__snapshot_sched_call_two_args.snap b/crates/wx-compiler/src/opt/snapshots/wx_compiler__opt__tests__snapshot_sched_call_two_args.snap index ce25037..cd04d5d 100644 --- a/crates/wx-compiler/src/opt/snapshots/wx_compiler__opt__tests__snapshot_sched_call_two_args.snap +++ b/crates/wx-compiler/src/opt/snapshots/wx_compiler__opt__tests__snapshot_sched_call_two_args.snap @@ -9,5 +9,6 @@ locals: body: - LocalGet: 0 - LocalGet: 1 - - Call: 107 + - Call: 403 - LocalTee: 2 +br_table_depths: [] diff --git a/crates/wx-compiler/src/opt/snapshots/wx_compiler__opt__tests__snapshot_sched_cse.snap b/crates/wx-compiler/src/opt/snapshots/wx_compiler__opt__tests__snapshot_sched_cse.snap index 5b72909..ccfc1a0 100644 --- a/crates/wx-compiler/src/opt/snapshots/wx_compiler__opt__tests__snapshot_sched_cse.snap +++ b/crates/wx-compiler/src/opt/snapshots/wx_compiler__opt__tests__snapshot_sched_cse.snap @@ -12,3 +12,4 @@ body: - LocalTee: 1 - LocalGet: 1 - I32Add +br_table_depths: [] diff --git a/crates/wx-compiler/src/opt/tests.rs b/crates/wx-compiler/src/opt/tests.rs index fcbd47b..d804aaa 100644 --- a/crates/wx-compiler/src/opt/tests.rs +++ b/crates/wx-compiler/src/opt/tests.rs @@ -11,10 +11,12 @@ use std::collections::HashMap; use indoc::indoc; +use crate::ast; use crate::mir::{self, MIR}; use crate::opt::builder::Builder; -use crate::opt::scheduler::{Instruction, Scheduler}; +use crate::opt::scheduler::Scheduler; use crate::opt::{ControlNode, DataNodeKind, ScalarType, StackResult}; +use crate::wasm::{self, Instruction}; use crate::{tir, vfs}; /// Minimal stdlib definitions required for memory / pointer tests. @@ -32,6 +34,8 @@ const STD: &str = indoc! {" // ────────────────────────────────────────────────────────────── struct TestCase { + tir: tir::TIR, + interner: ast::StringInterner, mir: MIR, } @@ -42,7 +46,7 @@ impl TestCase { Scheduler::schedule(&opt, &self.mir).body } - fn schedule_full(&self) -> crate::opt::scheduler::ScheduledFunction { + fn schedule_full(&self) -> wasm::Function { let func_mir = self.get_first_func(); let opt = Builder::build(&self.mir, func_mir); Scheduler::schedule(&opt, &self.mir) @@ -66,37 +70,80 @@ impl TestCase { let mut graph = builder.build(root_id, stdlib_id); let tir = tir::TIR::build(&mut graph); let mir = MIR::build(&tir, &graph.interner, graph.id_generator); - TestCase { mir } + TestCase { + tir, + interner: graph.interner, + mir, + } } - /// Return the first function in the MIR output. - /// Each test compiles a single function (no stdlib), so this is always the - /// right one. + /// Return the first function in the MIR output. Only reliable when the + /// test's own snippet is the sole function reachable from `export` — + /// the stdlib (always loaded, see `TestCase::new`) contributes plenty of + /// its own functions to `mir.functions` ahead of it once any of them + /// survive DCE (e.g. arithmetic operator dispatch). Prefer + /// `get_tagged_func` (`#[tag = "..."]` on the function under test) for + /// anything that isn't purely memory/control-flow. fn get_first_func(&self) -> &mir::Function { self.mir.functions.first().expect("no functions in MIR") } + + /// Return the function tagged `#[tag = "..."]` in the test's own + /// snippet — robust against however many stdlib functions land in + /// `mir.functions` alongside it, unlike `get_first_func`. + fn get_tagged_func(&self, tag: &str) -> &mir::Function { + let symbol = self + .interner + .get(tag) + .unwrap_or_else(|| panic!("no `{tag}` symbol interned")); + let id = *self + .tir + .tagged_items + .get(&symbol) + .unwrap_or_else(|| panic!("no #[tag = \"{tag}\"] item found")); + self.mir + .functions + .iter() + .find(|f| f.id == id) + .unwrap_or_else(|| { + panic!("#[tag = \"{tag}\"] function not present in MIR output") + }) + } } // ── Tests ───────────────────────────────────────────────────────────────────── -/// `fn add(a: i32, b: i32) -> i32 { a + b }` should produce exactly: +/// `fn add(a: i32, b: i32) -> i32 { a + b }` should produce: /// - 2 Param nodes (indices 0 and 1) /// - 1 Add node referencing them /// - root block has 1 statement (Return) +/// +/// Plus one dead `Int(0)` node — see the in-test comment on the node-count +/// assertion for why that one's expected and harmless. #[test] fn test_simple_add() { let case = TestCase::new(indoc! {" + #[tag = \"target\"] fn add(a: i32, b: i32) -> i32 { a + b } export { add } "}); - let func = case.get_first_func(); + let func = case.get_tagged_func("target"); let opt = Builder::build(&case.mir, func); - // Exactly 3 data nodes: Param(0), Param(1), Add. + // 4 data nodes: Param(0), Param(1), a dead Int(0), Add. The dead Int(0) + // is `i32::add`'s inlined `self`/`rhs` locals living in `add`'s own root + // scope (see `mir::inlining::inline_call`) — `build_function` seeds + // every root-scope local past the function's own declared parameters + // with a default value before the function body's own `LocalSet`s (here, + // forwarding `a`/`b` into those locals) get a chance to run, so one + // throwaway default node is unavoidable per inlined call whose site is + // the function root. Harmless: nothing uses it, and the same node gets + // reused (via `Builder::node`'s CSE) for any other `0`-valued i32 this + // function happens to need elsewhere. assert_eq!( opt.data_nodes.len(), - 3, - "expected Param(0), Param(1), Add — got {:#?}", + 4, + "expected Param(0), Param(1), a dead Int(0), Add — got {:#?}", opt.data_nodes.iter().map(|n| &n.kind).collect::>() ); @@ -115,7 +162,7 @@ fn test_simple_add() { } )); assert!(matches!( - opt.data_nodes[2].kind, + opt.data_nodes[3].kind, DataNodeKind::Add { left: 0, right: 1, @@ -127,12 +174,12 @@ fn test_simple_add() { // a use-edge). Params are used by the Add. assert_eq!( opt.data_nodes[0].uses, - vec![2], + vec![3], "Param(0) should be used by Add" ); assert_eq!( opt.data_nodes[1].uses, - vec![2], + vec![3], "Param(1) should be used by Add" ); @@ -142,7 +189,7 @@ fn test_simple_add() { assert!(matches!( root.statements[0], crate::opt::ControlNode::Return { - value: StackResult::Value(2) + value: StackResult::Value(3) } )); } @@ -566,7 +613,7 @@ fn test_sched_if_else() { matches!( body[ip], Instruction::If { - ty: crate::opt::scheduler::BlockType::Empty + ty: wasm::BlockType::Empty } ), "If block type should be Empty when phi outputs exist; got {:?}", @@ -978,7 +1025,7 @@ fn test_struct_pointer_load_expands_to_per_field_loads() { indoc! {" memory heap: Memory where { Size = u32 }; struct Point { x: i32, y: i32 } - fn load_point(ptr: heap::*Point) -> Point { ptr.* } + fn load_point(ptr: heap::&Point) -> Point { ptr.* } export { load_point, heap } "} ); @@ -1032,7 +1079,7 @@ fn test_struct_pointer_load_field_access_folds() { indoc! {" memory heap: Memory where { Size = u32 }; struct Point { x: i32, y: i32 } - fn get_x(ptr: heap::*Point) -> i32 { + fn get_x(ptr: heap::&Point) -> i32 { local p: Point = ptr.*; p.x } @@ -1084,7 +1131,7 @@ fn test_struct_pointer_store_expands_to_per_field_stores() { indoc! {" memory heap: Memory where { Size = u32 }; struct Point { x: i32, y: i32 } - fn store_point(ptr: heap::*mut Point, x: i32, y: i32) { + fn store_point(ptr: heap::*Point, x: i32, y: i32) { ptr.* = Point::{ x: x, y: y } } export { store_point, heap } @@ -1234,7 +1281,7 @@ fn test_sched_if_else_phi_stores() { matches!( body[if_pos], Instruction::If { - ty: crate::opt::scheduler::BlockType::Empty + ty: wasm::BlockType::Empty } ), "If block type should be Empty when phi stores are used; got {:?}", @@ -1277,7 +1324,7 @@ fn test_sched_struct_pointer_store() { indoc! {" memory heap: Memory where { Size = u32 }; struct Point { x: i32, y: i32 } - fn store_point(ptr: heap::*mut Point, x: i32, y: i32) { + fn store_point(ptr: heap::*Point, x: i32, y: i32) { ptr.* = Point::{ x: x, y: y } } export { store_point, heap } @@ -1319,7 +1366,7 @@ fn test_sched_struct_pointer_load_field_access() { indoc! {" memory heap: Memory where { Size = u32 }; struct Point { x: i32, y: i32 } - fn get_x(ptr: heap::*Point) -> i32 { + fn get_x(ptr: heap::&Point) -> i32 { local p: Point = ptr.*; p.x } @@ -1360,7 +1407,7 @@ fn test_sched_struct_pointer_load_full_aggregate_keeps_all_loads() { indoc! {" memory heap: Memory where { Size = u32 }; struct Point { x: i32, y: i32 } - fn load_point(ptr: heap::*Point) -> Point { ptr.* } + fn load_point(ptr: heap::&Point) -> Point { ptr.* } export { load_point, heap } "} ); @@ -1584,10 +1631,10 @@ fn test_sched_call_result_spilled() { #[test] fn test_sched_narrow_loads_emit_correct_opcodes() { let cases: &[(&str, &str, fn(&Instruction) -> bool)] = &[ - ("*u8", "u8", |i| matches!(i, Instruction::I32Load8U(_))), - ("*i8", "i8", |i| matches!(i, Instruction::I32Load8S(_))), - ("*u16", "u16", |i| matches!(i, Instruction::I32Load16U(_))), - ("*i16", "i16", |i| matches!(i, Instruction::I32Load16S(_))), + ("&u8", "u8", |i| matches!(i, Instruction::I32Load8U(_))), + ("&i8", "i8", |i| matches!(i, Instruction::I32Load8S(_))), + ("&u16", "u16", |i| matches!(i, Instruction::I32Load16U(_))), + ("&i16", "i16", |i| matches!(i, Instruction::I32Load16S(_))), ]; for (ptr_ty, ret_ty, is_expected) in cases { @@ -1619,10 +1666,8 @@ export {{ read, heap }}" #[test] fn test_sched_narrow_stores_emit_correct_opcodes() { let cases: &[(&str, &str, fn(&Instruction) -> bool)] = &[ - ("*mut u8", "u8", |i| matches!(i, Instruction::I32Store8(_))), - ("*mut u16", "u16", |i| { - matches!(i, Instruction::I32Store16(_)) - }), + ("*u8", "u8", |i| matches!(i, Instruction::I32Store8(_))), + ("*u16", "u16", |i| matches!(i, Instruction::I32Store16(_))), ]; for (ptr_ty, val_ty, is_expected) in cases { @@ -2062,7 +2107,7 @@ fn test_u32_right_shift_schedules_logical_shift() { fn test_memory64_pointer_param_is_i64() { let case = TestCase::new(indoc! {" memory stack: Memory where { Size = u64 }; - fn id(p: stack::*u8) -> stack::*u8 { p } + fn id(p: stack::&u8) -> stack::&u8 { p } export { id } "}); let func = case.get_first_func(); @@ -2240,7 +2285,7 @@ fn test_match_switch_result_value_join() { fn test_match_switch_exhaustive_enum_has_no_default() { let case = TestCase::new(indoc! {" enum Color: u8 { - Red, + Red = 0, Green, Blue, } @@ -2306,7 +2351,9 @@ fn test_match_schedules_nested_if_else_chain() { assert_eq!(else_count, 2, "one `else` per real case; got: {body:?}"); assert_eq!(eq_count, 2, "one comparison per real case; got: {body:?}"); assert!( - !body.iter().any(|i| matches!(i, Instruction::BrTable(_))), + !body + .iter() + .any(|i| matches!(i, Instruction::BrTable { .. })), "below the br_table threshold, must not emit one; got: {body:?}" ); } @@ -2334,11 +2381,15 @@ fn test_match_schedules_br_table_for_dense_cases() { } export { classify } "}); - let body = case.schedule(); - let br_tables: Vec<_> = body + let func = case.schedule_full(); + let body = &func.body; + let br_tables: Vec<&[u32]> = body .iter() .filter_map(|i| match i { - Instruction::BrTable(depths) => Some(depths), + Instruction::BrTable { start, len } => Some( + &func.br_table_depths + [*start as usize..(*start + *len) as usize], + ), _ => None, }) .collect(); @@ -2348,7 +2399,7 @@ fn test_match_schedules_br_table_for_dense_cases() { "expected exactly one br_table; got: {body:?}" ); assert_eq!( - br_tables[0].as_ref(), + br_tables[0], [0, 1, 2, 3], "depths must be per-case array position, default (== case_count) trailing" ); diff --git a/crates/wx-compiler/src/tir/builder.rs b/crates/wx-compiler/src/tir/builder.rs index d20e611..5310fc1 100644 --- a/crates/wx-compiler/src/tir/builder.rs +++ b/crates/wx-compiler/src/tir/builder.rs @@ -12,6 +12,29 @@ struct ExprContext { stack: StackFrame, resolve_context: ResolveContext, scope: Option, + mode: EvalMode, +} + +/// Whether the expression tree currently being built will actually be +/// lowered to MIR and executed (`Runtime`), or is purely interpreted at +/// compile time by `eval_const_expr` and then discarded — only the +/// resulting literal value survives, inlined at every reference site +/// (`const` declarations, enum discriminants: both resolved in +/// `ensure_signature`/Phase 2, since other signatures can depend on the +/// value). `Runtime` covers regular function bodies *and* `global` +/// initializers — both resolved in `ensure_body`/Phase 3, since globals are +/// genuine mutable state initialized by a real synthesized `start` function +/// (`mir::MIR::build_start_function`), not folded away. +/// +/// This is what operator dispatch (`Builder::build_operator_dispatch`) gates +/// on: dispatching `+` to a real `Add::add` call is only worth doing for +/// trees that will actually run — a `Comptime` tree never reaches MIR, so +/// `build_arithmetic_expr` builds a plain `Binary` node for it instead, +/// exactly as before operator overloading existed, keeping it directly +/// foldable by `eval_const_expr`'s existing arithmetic arm. +enum EvalMode { + Runtime(OperatorTraits), + Comptime, } impl ExprContext { @@ -184,6 +207,86 @@ struct Builder<'ast, 'graph> { ast_nodes: Vec>, /// Maps DefId → SigEntry; populated after Phase 1 with exact capacity. sig_state: HashMap, + /// `None` until Phase 2 finishes; see `Builder::operator_traits`. + operator_traits: Option, +} + +/// `Add`/`Sub`/`Mul`/`Div`/`Rem`/`Neg` — the fixed set of operator-overload +/// traits binary/unary arithmetic expressions dispatch through. Resolved +/// once, right after Phase 2 (every item's signature, including +/// `std/main.wx`'s `#[tag = "add"]`-style attributes, is available by then — +/// a missing tag is a stdlib/compiler bug, not a per-expression condition), +/// so checking a `+`/`-`/... never touches the interner or `tagged_items` on +/// the hot path. Lives on `Builder`, not `TIR`: nothing outside `TIR::build` +/// needs this mapping — every operator is already resolved to a concrete +/// `ExprKind::MethodCall` by the time `TIR::build` returns. +/// +/// Covers arithmetic (`Add`/`Sub`/`Mul`/`Div`/`Rem`/`Neg`) and bitwise +/// (`BitAnd`/`BitOr`/`BitXor`/`Shl`/`Shr`/`BitNot`) operators alike — every +/// binary family dispatches through `for_op`/`build_operator_dispatch`, and +/// both unary members (`Neg`, `BitNot`) through `for_unary_op`/ +/// `build_unary_operator_dispatch`. +#[derive(Clone)] +struct OperatorTraits { + add: (TraitIndex, SymbolU32), + sub: (TraitIndex, SymbolU32), + mul: (TraitIndex, SymbolU32), + div: (TraitIndex, SymbolU32), + rem: (TraitIndex, SymbolU32), + neg: (TraitIndex, SymbolU32), + bitand: (TraitIndex, SymbolU32), + bitor: (TraitIndex, SymbolU32), + bitxor: (TraitIndex, SymbolU32), + shl: (TraitIndex, SymbolU32), + shr: (TraitIndex, SymbolU32), + bitnot: (TraitIndex, SymbolU32), +} + +impl OperatorTraits { + /// Maps an arithmetic or bitwise `BinaryOp` to its `(TraitIndex, + /// SymbolU32)` entry — the lookup every such operator-dispatch path + /// needs, factored out so it's defined once. `None` for an operator with + /// no overload trait (comparisons, logical, assignment). + fn for_op(&self, op: BinaryOp) -> Option<(TraitIndex, SymbolU32)> { + Some(match op { + BinaryOp::Add => self.add, + BinaryOp::Sub => self.sub, + BinaryOp::Mul => self.mul, + BinaryOp::Div => self.div, + BinaryOp::Rem => self.rem, + BinaryOp::BitAnd => self.bitand, + BinaryOp::BitOr => self.bitor, + BinaryOp::BitXor => self.bitxor, + BinaryOp::LeftShift => self.shl, + BinaryOp::RightShift => self.shr, + _ => return None, + }) + } + + /// Unary counterpart of `for_op`, for `-x` (`Neg`) and `^x` (`BitNot`). + /// `None` for an operator with no overload trait (`!x`, bool-only). + fn for_unary_op( + &self, + op: ast::UnaryOp, + ) -> Option<(TraitIndex, SymbolU32)> { + Some(match op { + ast::UnaryOp::InvertSign => self.neg, + ast::UnaryOp::BitNot => self.bitnot, + ast::UnaryOp::Not => return None, + }) + } +} + +/// What `Builder::resolve_compound_operator` resolved `x op= y` to for a +/// given target. Mirrors the split between `MethodCall` and +/// `GenericMethodCall`: `Concrete` when `find_trait_impl` already resolved a +/// real impl for the target's (already concrete) type, `Generic` when the +/// target's type is still abstract (a bare `TypeParam` or a typeset-bounded +/// `AssocTypeProjection`) and resolution has to wait for monomorphization, +/// exactly like `GenericMethodCall`'s abstract-method branch. +enum CompoundOperatorDispatch { + Concrete(ast::DefId), + Generic { abstract_method_id: ast::DefId }, } enum BlockState { @@ -352,6 +455,18 @@ fn report_enum_repr_not_integer( ))) } +fn report_enum_variant_requires_explicit_value( + span: SourceSpan, +) -> Diagnostic { + Diagnostic::error() + .with_code(DiagnosticCode::EnumVariantRequiresExplicitValue.code()) + .with_message("enum variant requires an explicit value") + .with_label(span.primary_label().with_message("add `= ` here")) + .with_note( + "or add a value to an earlier variant to anchor auto-increment", + ) +} + /// One diagnostic per colliding value, not pairwise: primary label on the enum's own /// name, one secondary label per variant that shares `value` (all of them, not just /// the 2nd/3rd onward) — mirrors rustc's grouped `E0081` presentation. @@ -434,6 +549,17 @@ fn report_missing_function_body(span: SourceSpan) -> Diagnostic { .with_note("provide a definition for the function: `{ }`") } +fn report_missing_type_alias_body(span: SourceSpan) -> Diagnostic { + Diagnostic::error() + .with_code(DiagnosticCode::MissingTypeAliasBody.code()) + .with_message("free type alias without body") + .with_label(span.primary_label()) + .with_label( + Label::secondary(span.file_id, span.span) + .with_message("provide a definition for the type: `= ;`"), + ) +} + fn report_invalid_memory_kind(span: SourceSpan) -> Diagnostic { Diagnostic::error() .with_code(DiagnosticCode::InvalidMemoryKind.code()) @@ -988,6 +1114,30 @@ fn report_binary_operator_cannot_be_applied( )) } +struct UnaryOperatorCannotBeAppliedDiagnostic { + file_id: FileId, + operator: Spanned, + operand: Spanned, +} + +fn report_unary_operator_cannot_be_applied( + fmt: TypeFormatter, + diagnostic: UnaryOperatorCannotBeAppliedDiagnostic, +) -> Diagnostic { + Diagnostic::error() + .with_code(DiagnosticCode::UnaryOperatorCannotBeApplied.code()) + .with_message(format!( + "operator `{}` cannot be applied to type `{}`", + diagnostic.operator.inner, + fmt.display_type(diagnostic.operand.inner).unwrap() + )) + .with_label(Label::primary(diagnostic.file_id, diagnostic.operand.span)) + .with_label(Label::secondary( + diagnostic.file_id, + diagnostic.operator.span, + )) +} + struct BinaryExpressionMistmatchDiagnostic { file_id: FileId, left_type: Spanned, @@ -1071,6 +1221,7 @@ fn report_binary_expression_mistmatch( }; Diagnostic::error() + .with_code(DiagnosticCode::TypeMistmatch) .with_message(message) .with_label( Label::secondary(diagnostic.file_id, diagnostic.left_type.span) @@ -1112,9 +1263,9 @@ fn report_cannot_store_through_immutable_pointer( ) -> Diagnostic { Diagnostic::error() .with_code(DiagnosticCode::CannotMutateImmutable.code()) - .with_message("cannot write through an immutable pointer") + .with_message("cannot write through a shared reference") .with_label(span.primary_label()) - .with_note("consider changing the pointer type to `*mut T`") + .with_note("consider changing the reference type to `*T`") } fn report_cannot_deref_non_pointer( @@ -1145,18 +1296,6 @@ fn report_cannot_take_address_of_value(span: SourceSpan) -> Diagnostic { ) } -fn report_cannot_take_mutable_address_of_immutable( - span: SourceSpan, -) -> Diagnostic { - Diagnostic::error() - .with_code(DiagnosticCode::CannotMutateImmutable.code()) - .with_message("cannot take a mutable address of an immutable place") - .with_label(span.primary_label()) - .with_note( - "the pointer chain leading here is immutable; use `*mut T` to allow mutable access", - ) -} - fn report_no_memory_for_pointer(span: SourceSpan) -> Diagnostic { Diagnostic::error() .with_code(DiagnosticCode::NoMemoryForPointer.code()) @@ -1598,6 +1737,7 @@ pub fn build(graph: &mut CompilationGraph) -> TIR { sig_state: HashMap::new(), root_wildcard_imports: Vec::new(), ast_nodes: Vec::new(), + operator_traits: None, }; // Create a top-level namespace for each named (library) crate before prescanning. @@ -1660,6 +1800,8 @@ pub fn build(graph: &mut CompilationGraph) -> TIR { builder.ensure_signature(builder.ast_nodes[i].def_id); } + builder.operator_traits = Some(builder.resolve_operator_traits()); + // Phase 3: demand-resolve bodies in parse order. for i in 0..builder.ast_nodes.len() { builder.ensure_body(builder.ast_nodes[i].def_id); @@ -1686,6 +1828,552 @@ pub fn build(graph: &mut CompilationGraph) -> TIR { } impl<'ast> Builder<'ast, '_> { + /// Resolves one `#[tag = "..."]`-marked stdlib trait to its `TraitIndex` + /// plus its single method's name symbol. Panics on failure — by the time + /// this runs (right after Phase 2), `std/main.wx` is fully signature-checked, + /// so a missing tag is a stdlib/compiler bug, not a recoverable condition. + fn resolve_operator_trait(&self, tag: &str) -> (TraitIndex, SymbolU32) { + let symbol = self + .interner + .get(tag) + .unwrap_or_else(|| panic!("stdlib missing `{tag}` symbol")); + let def_id = *self.tir.tagged_items.get(&symbol).unwrap_or_else(|| { + panic!("stdlib missing #[tag = \"{tag}\"] item") + }); + (self.tir.expect_trait_index(def_id), symbol) + } + + fn resolve_operator_traits(&self) -> OperatorTraits { + OperatorTraits { + add: self.resolve_operator_trait("add"), + sub: self.resolve_operator_trait("sub"), + mul: self.resolve_operator_trait("mul"), + div: self.resolve_operator_trait("div"), + rem: self.resolve_operator_trait("rem"), + neg: self.resolve_operator_trait("neg"), + bitand: self.resolve_operator_trait("bitand"), + bitor: self.resolve_operator_trait("bitor"), + bitxor: self.resolve_operator_trait("bitxor"), + shl: self.resolve_operator_trait("shl"), + shr: self.resolve_operator_trait("shr"), + bitnot: self.resolve_operator_trait("bitnot"), + } + } + + /// Pure lookup: resolves `ty`'s method for the trait tagged `trait_index` + /// under member name `method_symbol`. No side effects, no `EvalMode` + /// awareness — callers only call this once they already know evaluation + /// mode is `Runtime` (see `build_operator_dispatch`), and decide for + /// themselves what a `None` means (a struct with no `Add` impl is a real + /// error; a typeset-bounded associated type, which `find_trait_impl` can + /// never match since it has no concrete `ImplTarget`, is not — see + /// `is_typeset_bounded_assoc_type`). Shared by binary + /// (`build_operator_dispatch`), unary (`Neg`), and the + /// `Type::TypeParam` compound-assignment dispatch. + fn resolve_trait_method( + &self, + trait_index: TraitIndex, + method_symbol: SymbolU32, + ty: TypeIndex, + ) -> Option { + let (impl_idx, _type_args) = + self.tir.find_trait_impl(ty, trait_index)?; + match self.tir.trait_impls[impl_idx as usize] + .members + .get(&method_symbol)? + { + ImplEntry::Method(func_idx) => Some(*func_idx), + _ => None, + } + } + + /// The `Type::TypeParam` counterpart of `resolve_trait_method` — which + /// only ever resolves a concrete `ImplTarget`, so it fails outright for + /// a type param (`ImplTarget::from_type` doesn't handle `TypeParam`). + /// Checks the type param's own declared bounds instead: `None` means + /// the operator's trait isn't among them — a genuinely unbounded `T` — + /// and the caller should fall through to the ordinary concrete-resolution + /// path, which reports the same "operator cannot be applied" diagnostic + /// either way. `Some` returns the trait's *abstract* method (no body — + /// resolved for real once monomorphization substitutes a concrete + /// `Self`, exactly like `GenericMethodCall`'s existing abstract-method + /// fallback). + fn resolve_bounded_operator_method( + &self, + owner: TypeParamOwner, + param_index: u32, + trait_index: TraitIndex, + method_symbol: SymbolU32, + ) -> Option { + let bounded = self + .tir + .type_param_info(owner, param_index as usize) + .bounds + .traits + .iter() + .any(|tb| tb.trait_index == trait_index); + if !bounded { + return None; + } + match self.tir.traits[trait_index as usize] + .entries + .get(&method_symbol) + { + Some(ImplEntry::Method(idx)) => Some(*idx), + _ => unreachable!("operator trait must declare its own method"), + } + } + + /// Resolves `operator` for `ty` in `ctx`'s evaluation mode and builds the + /// resulting expression: + /// - `Comptime` never attempts dispatch at all (see `EvalMode`'s doc + /// comment) — builds a plain `Binary` node, exactly as before operator + /// overloading existed, still directly foldable by `eval_const_expr`. + /// - `Runtime`, dispatch succeeds — records `operator`'s own span as a + /// go-to-definition access against the resolved method (the same + /// `accesses`-list mechanism ordinary method calls use) and builds a + /// `MethodCall`. + /// - `Runtime`, dispatch fails — reports "operator cannot be applied". + /// Only call this once the caller has already ruled out the one + /// legitimate non-error failure case, a typeset-bounded associated + /// type (see `resolve_trait_method`'s doc comment) — every current + /// caller either gates `ty` to primitives beforehand (arms 2/3 of + /// `build_arithmetic_expr`) or checks + /// `is_typeset_bounded_assoc_type` itself first (the equal-types arm). + fn build_operator_dispatch( + &mut self, + ctx: &ExprContext, + operator: Spanned, + left: Expression, + right: Expression, + ty: TypeIndex, + span: ast::TextSpan, + ) -> Expression { + let binary_op = Spanned { + inner: BinaryOp::from(operator.inner), + span: operator.span, + }; + let EvalMode::Runtime(traits) = &ctx.mode else { + return Expression { + kind: ExprKind::Binary { + operator: binary_op, + left: Box::new(left), + right: Box::new(right), + }, + ty, + span, + }; + }; + + // A bare `Type::TypeParam` isn't concrete, so `resolve_trait_method` + // below can never resolve it (`find_trait_impl` fails outright for one + // — see `ImplTarget::from_type`). Unlike a typeset-bounded + // `AssocTypeProjection`, whose members are always primitives (the + // native op works directly, used as-is via `build_arithmetic_result`'s + // plain-`Binary` path), a `T: Add`-bounded type param could concretize + // to any type implementing `Add`, not just a primitive — so this needs + // real deferred dispatch, exactly like `left.add(right)` would produce + // for a written generic method call, resolved at MIR-lowering time + // once monomorphization substitutes a concrete `Self`. An unbounded + // `T` falls through to the same failure path below as a concrete type + // with no matching impl, since `resolve_bounded_operator_method` + // deliberately returns `None` for both. + if let Type::TypeParam { owner, param_index } = + self.tir.types[ty.as_usize()] + && let Some((trait_index, method_symbol)) = + traits.for_op(binary_op.inner) + && let Some(func_idx) = self.resolve_bounded_operator_method( + owner, + param_index, + trait_index, + method_symbol, + ) { + self.tir.functions[func_idx as usize].accesses.push( + SourceSpan::new(ctx.resolve_context.file_id, operator.span), + ); + let abstract_method_id = self.tir.functions[func_idx as usize].id; + return Expression { + kind: ExprKind::GenericMethodCall { + id: abstract_method_id, + type_args: Box::new([ty]), + arguments: Box::new([left, right]), + }, + ty, + span, + }; + } + + let method = traits.for_op(binary_op.inner).and_then( + |(trait_index, method_symbol)| { + self.resolve_trait_method(trait_index, method_symbol, ty) + }, + ); + match method { + Some(func_idx) => { + self.tir.functions[func_idx as usize].accesses.push( + SourceSpan::new(ctx.resolve_context.file_id, operator.span), + ); + let method_id = self.tir.functions[func_idx as usize].id; + Expression { + kind: ExprKind::MethodCall { + arguments: Box::new([left, right]), + id: method_id, + }, + ty, + span, + } + } + None => { + self.tir.diagnostics.push( + report_binary_operator_cannot_be_applied( + TypeFormatter::new(&self.tir, self.interner), + BinaryOperatorCannotBeAppliedDiagnostic { + file_id: ctx.resolve_context.file_id, + operator, + operand: Spanned { inner: ty, span }, + }, + ), + ); + Expression { + kind: ExprKind::Binary { + operator: binary_op, + left: Box::new(left), + right: Box::new(right), + }, + ty: TypeIndex::ERROR, + span, + } + } + } + } + + /// Shared by every arm of `build_arithmetic_expr` once `ty` is a fully + /// concrete type both operands agree on (coerced or already equal). + /// Typeset-bounded associated types (`M::Size`) are the one type shape + /// `find_trait_impl` can never resolve — a structural non-error, not a + /// missing impl — so they stay on the plain `Binary` path; every other + /// type goes through real dispatch via `build_operator_dispatch`, which + /// already reports "operator cannot be applied" on its own if nothing + /// implements it. + fn build_arithmetic_result( + &mut self, + ctx: &ExprContext, + operator: Spanned, + left: Expression, + right: Expression, + ty: TypeIndex, + span: ast::TextSpan, + ) -> Expression { + if self.is_typeset_bounded_assoc_type(ty) { + Expression { + kind: ExprKind::Binary { + operator: Spanned { + inner: BinaryOp::from(operator.inner), + span: operator.span, + }, + left: Box::new(left), + right: Box::new(right), + }, + ty, + span, + } + } else { + self.build_operator_dispatch(ctx, operator, left, right, ty, span) + } + } + + /// Shared by `build_bitwise_binary_expr`'s same-type arm once `ty` is a + /// fully concrete type both operands agree on. Unlike + /// `build_arithmetic_result`, integers/`bool`/typeset-bounded associated + /// types stay on the plain `Binary` path unconditionally — that's the + /// pre-existing native codegen for bitwise ops on primitives, and it's + /// deliberately left untouched (no snapshot churn, no new intrinsics + /// needed for the concrete-primitive case). Only a type outside that set + /// (a struct, or a bare `Type::TypeParam` bounded by one of the bitwise + /// traits) goes through real dispatch via `build_operator_dispatch`, + /// which already reports "operator cannot be applied" on its own if + /// nothing implements it. + fn build_bitwise_result( + &mut self, + ctx: &ExprContext, + operator: Spanned, + left: Expression, + right: Expression, + ty: TypeIndex, + span: ast::TextSpan, + ) -> Expression { + if ty.is_integer() + || ty == TypeIndex::BOOL + || self.is_typeset_bounded_assoc_type(ty) + { + Expression { + kind: ExprKind::Binary { + operator: Spanned { + inner: BinaryOp::from(operator.inner), + span: operator.span, + }, + left: Box::new(left), + right: Box::new(right), + }, + ty, + span, + } + } else { + self.build_operator_dispatch(ctx, operator, left, right, ty, span) + } + } + + /// Resolves what a compound-assignment operator (`+=` and friends) + /// dispatches to for `ty`, for building `CompoundAssign`/`CompoundStore` + /// (`Concrete`) or `GenericCompoundAssign`/`GenericCompoundStore` + /// (`Generic`) — the compound-assignment analogue of + /// `build_operator_dispatch`, except it never builds an `Expression` + /// itself, since compound assignment needs `target` built exactly once + /// (see the four compound-assignment nodes' doc comments in `tir/mod.rs`), + /// not duplicated the way a `MethodCall`'s `arguments[0]` would require. + /// + /// `operator` is the plain form (`Add`, not `AddAssign`) — same + /// convention as `ExprKind::CompoundAssign`'s doc comment: the `*Assign` + /// form is only needed for `BinaryExpressionMistmatchDiagnostic`'s own + /// dedicated wording, kept separately by callers. + /// + /// `Err(())` means a real, already-diagnosed failure — `ty` is concrete + /// and genuinely has no matching impl. There is no benign `None` case + /// left to worry about: typeset-bounded and generic-not-yet-concrete + /// both fall into `Generic` now (see the design doc's "same category" + /// insight), and `EvalMode::Comptime` never reaches this function at all + /// (compound assignment is always inside a function body or `global` + /// initializer). + fn resolve_compound_operator( + &mut self, + ctx: &ExprContext, + operator: Spanned, + ty: TypeIndex, + operand_span: ast::TextSpan, + ) -> Result { + let EvalMode::Runtime(traits) = &ctx.mode else { + unreachable!( + "compound assignment is always inside a function body or \ + global initializer, never a const/enum-discriminant context" + ); + }; + let (trait_index, method_symbol) = traits + .for_op(BinaryOp::from(operator.inner)) + .unwrap_or_else(|| { + unreachable!( + "resolve_compound_operator only takes the plain form" + ) + }); + + // Typeset-bounded associated types (`Mem::Size`) always defer — their + // members are all primitives today (see `is_typeset_bounded_assoc_type`), + // so there's no separate trait bound to check. A bare `Type::TypeParam` + // is different: it could concretize to any type, so it only defers + // when actually bounded by this operator's trait — an unbounded `T` + // falls through to the failure path below instead of building a + // `GenericCompoundAssign`/`GenericCompoundStore` that would only fail + // later, as a raw panic once monomorphization substitutes some + // concrete, non-implementing type. + let abstract_func_idx = match self.tir.types[ty.as_usize()] { + Type::AssocTypeProjection { .. } => { + match self.tir.traits[trait_index as usize] + .entries + .get(&method_symbol) + { + Some(ImplEntry::Method(func_idx)) => Some(*func_idx), + _ => unreachable!( + "operator trait must declare its own method" + ), + } + } + Type::TypeParam { owner, param_index } => self + .resolve_bounded_operator_method( + owner, + param_index, + trait_index, + method_symbol, + ), + _ => None, + }; + if let Some(abstract_func_idx) = abstract_func_idx { + self.tir.functions[abstract_func_idx as usize] + .accesses + .push(SourceSpan::new( + ctx.resolve_context.file_id, + operator.span, + )); + return Ok(CompoundOperatorDispatch::Generic { + abstract_method_id: self.tir.functions + [abstract_func_idx as usize] + .id, + }); + } + + match self.resolve_trait_method(trait_index, method_symbol, ty) { + Some(func_idx) => { + self.tir.functions[func_idx as usize].accesses.push( + SourceSpan::new(ctx.resolve_context.file_id, operator.span), + ); + Ok(CompoundOperatorDispatch::Concrete( + self.tir.functions[func_idx as usize].id, + )) + } + None => { + self.tir.diagnostics.push( + report_binary_operator_cannot_be_applied( + TypeFormatter::new(&self.tir, self.interner), + BinaryOperatorCannotBeAppliedDiagnostic { + file_id: ctx.resolve_context.file_id, + operator, + operand: Spanned { + inner: ty, + span: operand_span, + }, + }, + ), + ); + Err(()) + } + } + } + + /// Unary counterpart of `build_operator_dispatch`, for `-x` (`Neg`) and + /// `^x` (`BitNot`) — `EvalMode` gating, go-to-definition access + /// recording, and diagnostic-on-failure all mirror the binary case + /// exactly, just with one operand instead of two. Callers only ever + /// pass an `operator` `for_unary_op` recognizes (`InvertSign`/ + /// `BitNot`) — `!x` (`Not`) is bool-only and never reaches here. + /// + /// TODO: revisit whether this and `build_operator_dispatch` (plus + /// `build_arithmetic_result`/`build_unary_arithmetic_result`) can share + /// more than `resolve_trait_method` — the binary/unary duplication here + /// is mostly `Box::new([left, right])` vs. `Box::new([operand])` and + /// `ExprKind::Binary` vs. `ExprKind::Unary`, which might collapse with a + /// small enum over "1 or 2 operands" if a third unary/binary trait op is + /// ever added. + fn build_unary_operator_dispatch( + &mut self, + ctx: &ExprContext, + operator: Spanned, + operand: Expression, + ty: TypeIndex, + span: ast::TextSpan, + ) -> Expression { + let EvalMode::Runtime(traits) = &ctx.mode else { + return Expression { + kind: ExprKind::Unary { + operator, + operand: Box::new(operand), + }, + ty, + span, + }; + }; + let Some((trait_index, method_symbol)) = + traits.for_unary_op(operator.inner) + else { + unreachable!( + "build_unary_operator_dispatch called with an operator \ + that has no overload trait" + ) + }; + + // Same reasoning as `build_operator_dispatch`'s equivalent branch: a + // bare `Type::TypeParam` isn't concrete, so `resolve_trait_method` + // below can never resolve it — a `T: Neg`-bounded type param could + // concretize to any type implementing `Neg`, not just a primitive, + // so this needs real deferred dispatch, resolved at MIR-lowering + // time once monomorphization substitutes a concrete `Self`. An + // unbounded `T` falls through to the same failure path below as a + // concrete type with no matching impl, since + // `resolve_bounded_operator_method` deliberately returns `None` for + // both. + if let Type::TypeParam { owner, param_index } = + self.tir.types[ty.as_usize()] + && let Some(func_idx) = self.resolve_bounded_operator_method( + owner, + param_index, + trait_index, + method_symbol, + ) { + self.tir.functions[func_idx as usize].accesses.push( + SourceSpan::new(ctx.resolve_context.file_id, operator.span), + ); + let abstract_method_id = self.tir.functions[func_idx as usize].id; + return Expression { + kind: ExprKind::GenericMethodCall { + id: abstract_method_id, + type_args: Box::new([ty]), + arguments: Box::new([operand]), + }, + ty, + span, + }; + } + + match self.resolve_trait_method(trait_index, method_symbol, ty) { + Some(func_idx) => { + self.tir.functions[func_idx as usize].accesses.push( + SourceSpan::new(ctx.resolve_context.file_id, operator.span), + ); + let method_id = self.tir.functions[func_idx as usize].id; + Expression { + kind: ExprKind::MethodCall { + arguments: Box::new([operand]), + id: method_id, + }, + ty, + span, + } + } + None => { + self.tir.diagnostics.push( + report_unary_operator_cannot_be_applied( + TypeFormatter::new(&self.tir, self.interner), + UnaryOperatorCannotBeAppliedDiagnostic { + file_id: ctx.resolve_context.file_id, + operator, + operand: Spanned { inner: ty, span }, + }, + ), + ); + Expression { + kind: ExprKind::Unary { + operator, + operand: Box::new(operand), + }, + ty: TypeIndex::ERROR, + span, + } + } + } + } + + /// Unary counterpart of `build_arithmetic_result` — excludes + /// typeset-bounded associated types before delegating to + /// `build_unary_operator_dispatch`, same reasoning as the binary case. + fn build_unary_arithmetic_result( + &mut self, + ctx: &ExprContext, + operator: Spanned, + operand: Expression, + ty: TypeIndex, + span: ast::TextSpan, + ) -> Expression { + if self.is_typeset_bounded_assoc_type(ty) { + Expression { + kind: ExprKind::Unary { + operator, + operand: Box::new(operand), + }, + ty, + span, + } + } else { + self.build_unary_operator_dispatch(ctx, operator, operand, ty, span) + } + } + fn intern_type(&mut self, ty: Type) -> TypeIndex { if let Some(&idx) = self.type_index_lookup.get(&ty) { idx @@ -1706,45 +2394,45 @@ impl<'ast> Builder<'ast, '_> { return true; } match (&self.tir.types[a.as_usize()], &self.tir.types[b.as_usize()]) { - // *mut T coerces to *T (dropping write permission is always safe). + // *T coerces to &T (dropping write permission is always safe). ( Type::Pointer { to: a_to, memory: a_mem, - mutable: true, + ownership: ast::Ownership::Exclusive, }, Type::Pointer { to: b_to, memory: b_mem, - mutable: false, + ownership: ast::Ownership::Shared, }, ) => a_to == b_to && a_mem == b_mem, - // []mut T coerces to []T (dropping write permission is always safe). + // *[T] coerces to &[T] (dropping write permission is always safe). ( Type::Slice { of: a_of, memory: a_mem, - mutable: true, + ownership: ast::Ownership::Exclusive, }, Type::Slice { of: b_of, memory: b_mem, - mutable: false, + ownership: ast::Ownership::Shared, }, ) => a_of == b_of && a_mem == b_mem, - // [N]mut T coerces to [N]T (dropping write permission is always safe). + // *[T; N] coerces to &[T; N] (dropping write permission is always safe). ( Type::Array { of: a_of, size: a_size, memory: a_mem, - mutable: true, + ownership: ast::Ownership::Exclusive, }, Type::Array { of: b_of, size: b_size, memory: b_mem, - mutable: false, + ownership: ast::Ownership::Shared, }, ) => a_of == b_of && a_size == b_size && a_mem == b_mem, // FunctionItem coerces implicitly to its matching Function type. @@ -2584,7 +3272,7 @@ impl<'ast> Builder<'ast, '_> { | SymbolKind::TraitAssocType { .. } | SymbolKind::Pending(_) => None, SymbolKind::TypeAlias { type_alias_index } => { - Some(self.tir.type_aliases[type_alias_index as usize].template) + Some(self.tir.type_aliases[type_alias_index as usize].body) } } } @@ -2599,11 +3287,6 @@ impl<'ast> Builder<'ast, '_> { identifier: Spanned, arity: TypeArgArity, ) -> Result { - if let Ok(ty) = - Type::try_from(self.interner.resolve(identifier.inner).unwrap()) - { - return Ok(self.intern_type(ty)); - } if let Some(scope) = scope { // Search the owner's own type params first (innermost scope wins). let own_params: &[TypeParamInfo] = match scope.owner { @@ -2941,7 +3624,7 @@ impl<'ast> Builder<'ast, '_> { }, }) } - ast::TypeExpression::Pointer { mutability, inner } => { + ast::TypeExpression::Pointer { ownership, inner } => { let to = self.resolve_type(resolve_context, scope, inner); let span = SourceSpan::new(resolve_context.file_id, type_expr.span); @@ -2951,10 +3634,10 @@ impl<'ast> Builder<'ast, '_> { self.intern_type(Type::Pointer { to, memory, - mutable: mutability.is_some(), + ownership: *ownership, }) } - ast::TypeExpression::Slice { mutability, inner } => { + ast::TypeExpression::Slice { ownership, inner } => { let of = self.resolve_type(resolve_context, scope, inner); let span = SourceSpan::new(resolve_context.file_id, type_expr.span); @@ -2964,13 +3647,13 @@ impl<'ast> Builder<'ast, '_> { self.intern_type(Type::Slice { of, memory, - mutable: mutability.is_some(), + ownership: *ownership, }) } ast::TypeExpression::Array { - size, - mutability, + ownership, inner, + size, } => { let of = self.resolve_type(resolve_context, scope, inner); let span = @@ -2982,7 +3665,7 @@ impl<'ast> Builder<'ast, '_> { of, size: size.inner as u32, memory, - mutable: mutability.is_some(), + ownership: *ownership, }) } ast::TypeExpression::Tuple { elements } => { @@ -3061,7 +3744,7 @@ impl<'ast> Builder<'ast, '_> { // for untagged pointer/array/slice annotations. match &inner.inner { ast::TypeExpression::Pointer { - mutability, + ownership, inner: ptr_inner, } => { let to = self.resolve_type( @@ -3072,13 +3755,13 @@ impl<'ast> Builder<'ast, '_> { self.intern_type(Type::Pointer { to, memory: memory_ty, - mutable: mutability.is_some(), + ownership: *ownership, }) } ast::TypeExpression::Array { - size, - mutability, + ownership, inner: arr_inner, + size, } => { let of = self.resolve_type( resolve_context, @@ -3089,11 +3772,11 @@ impl<'ast> Builder<'ast, '_> { of, size: size.inner as u32, memory: memory_ty, - mutable: mutability.is_some(), + ownership: *ownership, }) } ast::TypeExpression::Slice { - mutability, + ownership, inner: sl_inner, } => { let of = @@ -3101,7 +3784,7 @@ impl<'ast> Builder<'ast, '_> { self.intern_type(Type::Slice { of, memory: memory_ty, - mutable: mutability.is_some(), + ownership: *ownership, }) } _ => { @@ -4281,6 +4964,7 @@ impl<'ast> Builder<'ast, '_> { pub_span, name, type_params, + attributes, .. } => { self.claim_name_binding( @@ -4293,17 +4977,19 @@ impl<'ast> Builder<'ast, '_> { self.tir .item_lookup .insert(*id, ItemIndex::TypeAlias(type_alias_index)); + let attributes = self.resolve_attributes(*id, attributes); self.tir.type_aliases.push(TypeAlias { id: *id, file_id, namespace, pub_span: *pub_span, name: *name, + attributes, type_params: type_params .iter() .map(|tp| TypeParamInfo::new(tp.name)) .collect(), - template: TypeIndex::ERROR, + body: TypeIndex::ERROR, accesses: Vec::new(), }); self.ast_nodes.push(AstEntry { @@ -4971,14 +5657,14 @@ impl<'ast> Builder<'ast, '_> { ); } AstNodeRef::TypeAlias { item } => { - let (id, name, ast_type_params, ty_expr) = match item { + let (id, name, ast_type_params, body_expr) = match item { ast::Item::TypeAlias { id, name, type_params, - ty, + body, .. - } => (id, name, type_params, ty), + } => (id, name, type_params, body), _ => unreachable!(), }; let type_alias_index = self.tir.expect_type_alias_index(*id); @@ -5003,12 +5689,40 @@ impl<'ast> Builder<'ast, '_> { self_type: None, }) }; - let template = self.resolve_signature_type( - resolve_context, - scope, - ty_expr, - ); - self.tir.type_aliases[type_alias_index as usize].template = + let template = match body_expr { + Some(ty_expr) => self.resolve_signature_type( + resolve_context, + scope, + ty_expr, + ), + // `#[intrinsic] type i8;` etc — bodiless, only legal for + // the primitives declared in `std/main.wx`. Same trust + // model as `#[intrinsic]` on functions (see + // `resolve_attributes`'s doc comment): not validated + // against the item kind or checked against user modules + // yet, since only the stdlib we control uses it today. + None if self.tir.type_aliases + [type_alias_index as usize] + .attributes + .contains(&ItemAttribute::Intrinsic) => + { + Type::try_from( + self.interner.resolve(name.inner).unwrap(), + ) + .map(|ty| self.intern_type(ty)) + .unwrap_or(TypeIndex::ERROR) + } + None => { + self.tir.diagnostics.push( + report_missing_type_alias_body(SourceSpan::new( + resolve_context.file_id, + name.span, + )), + ); + TypeIndex::ERROR + } + }; + self.tir.type_aliases[type_alias_index as usize].body = template; // Bind the name only if this occurrence still holds its own @@ -6245,7 +6959,14 @@ impl<'ast> Builder<'ast, '_> { namespace: resolve_context.namespace, parent: Some(ItemParent::Impl(self_type)), body: None, - type_params: Box::new([]), + // Own (method-level) type params only — impl-level + // params are inherited via type_param_parent, same + // convention as InherentImplFunction. + type_params: signature + .type_params + .iter() + .map(|tp| TypeParamInfo::new(tp.name)) + .collect(), type_param_parent: Some(TypeParamOwner::TraitImpl( trait_impl_index, )), @@ -6262,6 +6983,18 @@ impl<'ast> Builder<'ast, '_> { .item_lookup .insert(*id, ItemIndex::Function(func_index)); + // Resolve the method's own param bounds (e.g. `Mem: + // Memory` in `fn write(...)`) — without + // this, resolve_type_identifier can still find the type + // param by name (it's registered above), but any trait + // bound on it is silently dropped. + self.resolve_type_param_bounds( + resolve_context, + TypeParamOwner::Function(*id), + None, + &signature.type_params, + ); + let self_scope = GenericScope { owner: TypeParamOwner::Function(*id), self_type: Some(self_type), @@ -6657,6 +7390,15 @@ impl<'ast> Builder<'ast, '_> { // Globals can't be generic and have no `Self` — no honest // `GenericScope` to give them. scope: None, + // A global's initializer is genuine executable code (a + // synthesized `start` function actually runs it — see + // `EvalMode`'s doc comment), so operator dispatch applies + // here exactly as in a regular function body. + mode: EvalMode::Runtime( + self.operator_traits + .clone() + .expect("operator traits resolved after Phase 2"), + ), }; let mut value_expr = match self.build_expression( &mut func_ctx, @@ -7440,7 +8182,7 @@ impl<'ast> Builder<'ast, '_> { .accesses .push(SourceSpan::new(resolve_context.file_id, span)); let template = - self.tir.type_aliases[type_alias_index as usize].template; + self.tir.type_aliases[type_alias_index as usize].body; self.substitute_type(template, &args) } _ => unreachable!("filtered above"), @@ -7563,9 +8305,9 @@ impl<'ast> Builder<'ast, '_> { Type::Pointer { to, memory, - mutable, + ownership, } => { - let (to, memory, mutable) = (*to, *memory, *mutable); + let (to, memory, ownership) = (*to, *memory, *ownership); let next_to = self.substitute_type(to, type_args); let next_memory = self.substitute_type(memory, type_args); if next_to == to && next_memory == memory { @@ -7574,7 +8316,7 @@ impl<'ast> Builder<'ast, '_> { self.intern_type(Type::Pointer { to: next_to, memory: next_memory, - mutable, + ownership, }) } } @@ -7582,10 +8324,10 @@ impl<'ast> Builder<'ast, '_> { of, size, memory, - mutable, + ownership, } => { - let (of, size, memory, mutable) = - (*of, *size, *memory, *mutable); + let (of, size, memory, ownership) = + (*of, *size, *memory, *ownership); let next_of = self.substitute_type(of, type_args); let next_memory = self.substitute_type(memory, type_args); if next_of == of && next_memory == memory { @@ -7595,16 +8337,16 @@ impl<'ast> Builder<'ast, '_> { of: next_of, size, memory: next_memory, - mutable, + ownership, }) } } Type::Slice { of, memory, - mutable, + ownership, } => { - let (of, memory, mutable) = (*of, *memory, *mutable); + let (of, memory, ownership) = (*of, *memory, *ownership); let next_of = self.substitute_type(of, type_args); let next_memory = self.substitute_type(memory, type_args); if next_of == of && next_memory == memory { @@ -7613,7 +8355,7 @@ impl<'ast> Builder<'ast, '_> { self.intern_type(Type::Slice { of: next_of, memory: next_memory, - mutable, + ownership, }) } } @@ -7773,16 +8515,17 @@ impl<'ast> Builder<'ast, '_> { Type::Pointer { to: at, memory: amem, - mutable: amut, + ownership: aown, }, Type::Pointer { to: bt, memory: bmem, - mutable: bmut, + ownership: bown, }, ) => { - // *mut T satisfies *T (dropping mut is safe); the reverse is not. - (*amut || !*bmut) + // *T satisfies &T (dropping write permission is safe); the reverse is not. + !(*aown == ast::Ownership::Shared + && *bown == ast::Ownership::Exclusive) && self.type_satisfies_annotation(*at, *bt) && self.type_satisfies_annotation(*amem, *bmem) } @@ -8146,7 +8889,13 @@ impl<'ast> Builder<'ast, '_> { Vec::with_capacity(ast_variants.len()); let mut variant_lookup: HashMap = HashMap::with_capacity(variants.len()); - let mut next_auto_value: i64 = 0; + // `None` until some variant provides a known value to continue + // from — either an explicit `= ` that actually evaluated, + // or a prior implicit variant that itself continued from one. An + // implicit variant reached while this is still `None` has nothing + // to anchor to, which is an error (see the `None` arm below) + // rather than a silent `0`-based default. + let mut next_auto_value: Option = None; for ast_variant in ast_variants.iter().map(|v| &v.inner.inner) { if let Some(first_index) = @@ -8206,9 +8955,11 @@ impl<'ast> Builder<'ast, '_> { Err(_) => (None, None), } } - None => { - if let Some(ref range) = ty_range { - if !range.contains(next_auto_value) { + None => match next_auto_value { + Some(v) => { + if let Some(ref range) = ty_range + && !range.contains(v) + { self.tir.diagnostics.push( report_integer_literal_out_of_range( TypeFormatter::new( @@ -8217,7 +8968,7 @@ impl<'ast> Builder<'ast, '_> { ), IntegerLiteralOutOfRangeDiagnostic { ty: repr_type, - value: next_auto_value, + value: v, span: SourceSpan::new( resolve_context.file_id, ast_variant.name.span, @@ -8226,14 +8977,28 @@ impl<'ast> Builder<'ast, '_> { ), ); } + (None, Some(v)) } - (None, Some(next_auto_value)) - } - }; - next_auto_value = match const_value { - Some(value) => value.wrapping_add(1), - None => next_auto_value.wrapping_add(1), + // Nothing above this variant established a value to + // continue from — same "already reported once on the + // enum itself" cascade guard as the `Some(_) if + // repr_type == TypeIndex::ERROR` arm above. + None => { + if repr_type != TypeIndex::ERROR { + self.tir.diagnostics.push( + report_enum_variant_requires_explicit_value( + SourceSpan::new( + resolve_context.file_id, + ast_variant.name.span, + ), + ), + ); + } + (None, None) + } + }, }; + next_auto_value = const_value.map(|v| v.wrapping_add(1)); let variant_index = variants.len() as EnumVariantIndex; variant_lookup.insert(ast_variant.name.inner, variant_index); @@ -8334,17 +9099,38 @@ impl<'ast> Builder<'ast, '_> { /// chain of const-on-const arithmetic stays linear instead of blowing up. fn eval_const_expr(&self, expr: &Expression) -> Result { match &expr.kind { - ExprKind::Int { value } => Ok(ConstValue::Int(*value)), + // `value` is a raw, non-negative literal magnitude (see + // `ExprKind::Int`'s doc comment) — bit-reinterpret into the + // unified `ConstValue::Int(i64)` representation, same + // convention `IntegerRange` already uses (e.g. `u64::MAX as + // i64 == -1`, correct for an already-`u64`-typed constant). + ExprKind::Int { value } => Ok(ConstValue::Int(*value as i64)), ExprKind::Float { value } => Ok(ConstValue::Float(*value)), ExprKind::Bool { value } => Ok(ConstValue::Bool(*value)), ExprKind::Char { value } => Ok(ConstValue::Char(*value)), ExprKind::Unary { operator, operand } => { + // A literal being negated directly (`-128`) must be + // negated from its raw `u64` magnitude, not from the + // bit-cast `i64` recursing through `eval_const_expr` + // would otherwise produce for it — negating *that* value + // would panic on `-9223372036854775808` (`i64::MIN`'s + // magnitude bit-casts to `i64::MIN` itself, and only + // `wrapping_neg` on the raw magnitude wraps that back to + // the correct answer). + if let ast::UnaryOp::InvertSign = operator.inner + && let ExprKind::Int { value } = operand.kind + { + return Ok(ConstValue::Int((value as i64).wrapping_neg())); + } + let ConstValue::Int(value) = self.eval_const_expr(operand)? else { return Err(()); }; match operator.inner { - ast::UnaryOp::InvertSign => Ok(ConstValue::Int(-value)), + ast::UnaryOp::InvertSign => { + Ok(ConstValue::Int(value.wrapping_neg())) + } ast::UnaryOp::BitNot => Ok(ConstValue::Int(!value)), ast::UnaryOp::Not => Err(()), } @@ -8361,24 +9147,60 @@ impl<'ast> Builder<'ast, '_> { else { return Err(()); }; + // `Add`/`Sub`/`Mul` are representation-agnostic in two's + // complement — the wrapped bit pattern is identical + // whether `left`/`right` are interpreted as signed or + // unsigned, so folding them via plain `i64` wrapping ops + // is correct regardless of `expr.ty`'s real signedness. + // `Div`/`Rem` are not: dividing the same bit pattern as + // signed vs. unsigned gives different answers whenever a + // `u64` constant's magnitude exceeds `i64::MAX` (e.g. + // `u64::MAX / 2`, which as signed `i64` is `-1 / 2 == 0`, + // but is `9223372036854775807` as unsigned) — those two + // need to consult `expr.ty` and pick the matching + // operation. + let unsigned = expr.ty == TypeIndex::U8 + || expr.ty == TypeIndex::U16 + || expr.ty == TypeIndex::U32 + || expr.ty == TypeIndex::U64; match operator.inner { - ast::BinaryOp::Add => { + BinaryOp::Add => { Ok(ConstValue::Int(left.wrapping_add(right))) } - ast::BinaryOp::Sub => { + BinaryOp::Sub => { Ok(ConstValue::Int(left.wrapping_sub(right))) } - ast::BinaryOp::Mul => { + BinaryOp::Mul => { Ok(ConstValue::Int(left.wrapping_mul(right))) } - ast::BinaryOp::Div => { + BinaryOp::Div if unsigned => { + if right == 0 { + Err(()) + } else { + Ok(ConstValue::Int( + ((left as u64).wrapping_div(right as u64)) + as i64, + )) + } + } + BinaryOp::Div => { if right == 0 { Err(()) } else { Ok(ConstValue::Int(left.wrapping_div(right))) } } - ast::BinaryOp::Rem => { + BinaryOp::Rem if unsigned => { + if right == 0 { + Err(()) + } else { + Ok(ConstValue::Int( + ((left as u64).wrapping_rem(right as u64)) + as i64, + )) + } + } + BinaryOp::Rem => { if right == 0 { Err(()) } else { @@ -8432,6 +9254,11 @@ impl<'ast> Builder<'ast, '_> { lookup: HashMap::new(), resolve_context, scope: None, + // `const`/enum-discriminant values never reach MIR — only the + // literal `const_value` `eval_const_expr` computes survives, + // inlined at every reference site — so operator dispatch is + // never worth attempting here; see `EvalMode`'s doc comment. + mode: EvalMode::Comptime, }; let mut value_expr = self.build_expression( &mut func_ctx, @@ -8520,6 +9347,11 @@ impl<'ast> Builder<'ast, '_> { owner: scope.owner, self_type: scope.self_type, }), + mode: EvalMode::Runtime( + self.operator_traits + .clone() + .expect("operator traits resolved after Phase 2"), + ), }; let statements = block.inner.as_block_statements(); let result = @@ -9213,11 +10045,23 @@ impl<'ast> Builder<'ast, '_> { if is_intrinsic || is_imported { continue; } + // Trait impl methods/associated functions are never flagged as + // dead code, matching Rust: implementing a trait is itself the + // "use" — the method exists to satisfy the trait's contract + // (and may be invoked by generic code the compiler can't + // statically trace back to this particular impl), regardless + // of whether any accesses were ever recorded against it. + // `type_param_parent` already distinguishes this for free: + // `TraitImpl(_)` is only ever set by `AstNodeRef::TraitImplFunction`, + // never by the inherent-impl path (`ImplBlock(_)`). Inherent + // methods get no such exemption. if function.accesses.is_empty() && function.pub_span.is_none() && !matches!( function.type_param_parent, - Some(TypeParamOwner::Trait(_)) + Some( + TypeParamOwner::Trait(_) | TypeParamOwner::TraitImpl(_) + ) ) { let name = self.interner.resolve(function.name.inner).unwrap(); self.tir.diagnostics.push( @@ -9653,7 +10497,7 @@ impl<'ast> Builder<'ast, '_> { ty: self.intern_type(Type::Slice { of: TypeIndex::U8, memory: memory_ty, - mutable: false, + ownership: ast::Ownership::Shared, }), span: expr.span, }) @@ -9794,8 +10638,7 @@ impl<'ast> Builder<'ast, '_> { .build_slice_range_expression( func_ctx, expr.span, object, start, end, ), - ast::Expression::AddressOf { value, mut_span } => { - let mutable = mut_span.is_some(); + ast::Expression::AddressOf { value } => { let operand = self.build_expression( func_ctx, AccessContext { @@ -9806,23 +10649,13 @@ impl<'ast> Builder<'ast, '_> { )?; match operand.kind { ExprKind::Load { place } => { - if mutable && !place.mutable { - self.tir.diagnostics.push( - report_cannot_take_mutable_address_of_immutable( - SourceSpan::new( - func_ctx.resolve_context.file_id, - expr.span, - ), - ), - ); - } let pointer_ty = self.intern_type(Type::Pointer { to: place.ty, memory: place.memory, - mutable, + ownership: ast::Ownership::Shared, }); Ok(Expression { - kind: ExprKind::AddressOf { place, mutable }, + kind: ExprKind::AddressOf { place }, ty: pointer_ty, span: expr.span, }) @@ -11838,6 +12671,12 @@ impl<'ast> Builder<'ast, '_> { return true; } match (&self.tir.types[a.as_usize()], &self.tir.types[b.as_usize()]) { + // KNOWN GAP: casts only check `memory` equality, not ownership — + // `&T as *T` currently passes, silently defeating "a `&T` is + // always read-only". Fixing this properly needs a real rework of + // `as`-cast checking (and probably lands alongside whatever + // borrow-checker-alternative wx eventually gets), so it's left + // as-is for now rather than patched in isolation here. ( Type::Pointer { memory: a_mem, .. }, Type::Pointer { memory: b_mem, .. }, @@ -12168,9 +13007,38 @@ impl<'ast> Builder<'ast, '_> { )?; match operator.inner { - ast::UnaryOp::InvertSign | ast::UnaryOp::BitNot => { - if operand.ty.is_primitive() || operand.ty.is_comptime_number() + // `-x` — dispatches through `Neg`. A comptime-number operand + // (e.g. `-1`) has no concrete type yet to dispatch against, so + // this stays deferred exactly like binary arithmetic's arm 1 + // (`build_arithmetic_expr`) — `coerce_untyped_unary_expr` + // resolves it later, once a concrete type is known. + ast::UnaryOp::InvertSign if operand.ty.is_comptime_number() => { + let ty = operand.ty; + Ok(Expression { + kind: ExprKind::Unary { + operator, + operand: Box::new(operand), + }, + ty, + span: expr.span, + }) + } + ast::UnaryOp::InvertSign => { + let ty = operand.ty; + Ok(self.build_unary_arithmetic_result( + ctx, operator, operand, ty, expr.span, + )) + } + ast::UnaryOp::BitNot => { + if operand.ty.is_primitive() + || self.is_typeset_bounded_assoc_type(operand.ty) + || operand.ty.is_comptime_number() { + // Native fast path — unchanged from before `BitNot` + // had an overload trait at all: primitives, typeset- + // bounded associated types, and deferred comptime + // numbers stay a plain `Unary` node (no snapshot + // churn, no new intrinsics needed for this case). let ty = operand.ty; Ok(Expression { kind: ExprKind::Unary { @@ -12181,7 +13049,17 @@ impl<'ast> Builder<'ast, '_> { span: expr.span, }) } else { - panic!("can't apply unary operator to this type") + // Anything else (a struct) goes through real `BitNot` + // dispatch, which reports "operator cannot be + // applied" on its own if nothing implements it — + // same shape as `InvertSign`'s always-dispatch arm + // above, just gated to the non-primitive case to + // match the binary bitwise operators' native-path + // split (`build_bitwise_result`). + let ty = operand.ty; + Ok(self.build_unary_operator_dispatch( + ctx, operator, operand, ty, expr.span, + )) } } ast::UnaryOp::Not => { @@ -12315,7 +13193,10 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: Spanned { + inner: BinaryOp::from(operator.inner), + span: operator.span, + }, left: Box::new(left), right: Box::new(right), }, @@ -12338,6 +13219,10 @@ impl<'ast> Builder<'ast, '_> { } => (left, right, *operator), _ => unreachable!(), }; + let binary_op = Spanned { + inner: BinaryOp::from(operator.inner), + span: operator.span, + }; let mut left = self.build_expression(ctx, access_ctx.clone(), left)?; let mut right = self.build_expression( @@ -12361,7 +13246,7 @@ impl<'ast> Builder<'ast, '_> { (l, r) if l == TypeIndex::ERROR || r == TypeIndex::ERROR => { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12395,7 +13280,7 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12429,7 +13314,7 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12457,22 +13342,7 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, - left: Box::new(left), - right: Box::new(right), - }, - ty: left_type, - span: expr.span, - }) - } - (left_type, right_type) - if left_type == right_type - && (left_type.is_integer() - || left_type == TypeIndex::BOOL) => - { - Ok(Expression { - kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12480,6 +13350,10 @@ impl<'ast> Builder<'ast, '_> { span: expr.span, }) } + (left_type, right_type) if left_type == right_type => Ok(self + .build_bitwise_result( + ctx, operator, left, right, left_type, expr.span, + )), (left_type, right_type) => { self.tir .diagnostics @@ -12501,7 +13375,7 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12526,6 +13400,10 @@ impl<'ast> Builder<'ast, '_> { } => (left, right, *operator), _ => unreachable!(), }; + let binary_op = Spanned { + inner: BinaryOp::from(operator.inner), + span: operator.span, + }; let mut left = self.build_expression( ctx, @@ -12549,7 +13427,7 @@ impl<'ast> Builder<'ast, '_> { (l, r) if l == TypeIndex::ERROR || r == TypeIndex::ERROR => { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12570,7 +13448,7 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12583,7 +13461,7 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12596,7 +13474,7 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12607,7 +13485,7 @@ impl<'ast> Builder<'ast, '_> { (l, r) if l == TypeIndex::BOOL && r == TypeIndex::BOOL => { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12617,11 +13495,12 @@ impl<'ast> Builder<'ast, '_> { } (left_type, right_type) if left_type == right_type - && self.is_arithmetic_type(left_type) => + && (left_type.is_primitive() + || self.is_typeset_bounded_assoc_type(left_type)) => { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12638,7 +13517,7 @@ impl<'ast> Builder<'ast, '_> { { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12663,7 +13542,7 @@ impl<'ast> Builder<'ast, '_> { { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12692,7 +13571,7 @@ impl<'ast> Builder<'ast, '_> { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -12763,9 +13642,8 @@ impl<'ast> Builder<'ast, '_> { } Ok(Expression { - kind: ExprKind::Binary { + kind: ExprKind::Assign { left: Box::new(left), - operator, right: Box::new(right), }, ty: TypeIndex::UNIT, @@ -12807,9 +13685,8 @@ impl<'ast> Builder<'ast, '_> { } Ok(Expression { - kind: ExprKind::Binary { + kind: ExprKind::Assign { left: Box::new(left), - operator, right: Box::new(right), }, ty: TypeIndex::UNIT, @@ -12837,13 +13714,12 @@ impl<'ast> Builder<'ast, '_> { let right_type = right.ty; Ok(Expression { - kind: ExprKind::Binary { + kind: ExprKind::Assign { left: Box::new(Expression { kind: ExprKind::Placeholder, ty: right_type, span: left.span, }), - operator, right: Box::new(right), }, ty: TypeIndex::UNIT, @@ -12940,9 +13816,8 @@ impl<'ast> Builder<'ast, '_> { ); } Ok(Expression { - kind: ExprKind::Binary { + kind: ExprKind::Assign { left: Box::new(left), - operator, right: Box::new(right_expr), }, ty: TypeIndex::UNIT, @@ -12965,9 +13840,8 @@ impl<'ast> Builder<'ast, '_> { span: right.span, }); Ok(Expression { - kind: ExprKind::Binary { + kind: ExprKind::Assign { left: Box::new(left), - operator, right: Box::new(right_expr), }, ty: TypeIndex::UNIT, @@ -13002,6 +13876,23 @@ impl<'ast> Builder<'ast, '_> { _ => unreachable!(), }; + // `ExprKind::CompoundAssign` and `resolve_compound_assignment_method` + // only ever deal in the plain form — see `CompoundAssign`'s doc + // comment. `operator` (the `*Assign` form) is kept around only for + // `BinaryExpressionMistmatchDiagnostic`, which has its own + // dedicated "cannot add-assign" wording. + let plain_op = Spanned { + inner: match operator.inner { + ast::BinaryOp::AddAssign => ast::BinaryOp::Add, + ast::BinaryOp::SubAssign => ast::BinaryOp::Sub, + ast::BinaryOp::MulAssign => ast::BinaryOp::Mul, + ast::BinaryOp::DivAssign => ast::BinaryOp::Div, + ast::BinaryOp::RemAssign => ast::BinaryOp::Rem, + _ => unreachable!(), + }, + span: operator.span, + }; + let left = self.build_expression( ctx, AccessContext { @@ -13017,23 +13908,6 @@ impl<'ast> Builder<'ast, '_> { } => { let local_type = ctx.stack.get_local(scope_index, local_index).ty; - if !local_type.is_primitive() { - self.tir.diagnostics.push( - report_binary_operator_cannot_be_applied( - TypeFormatter::new(&self.tir, self.interner), - BinaryOperatorCannotBeAppliedDiagnostic { - file_id: ctx.resolve_context.file_id, - operator, - operand: Spanned { - inner: local_type, - span: left.span, - }, - }, - ), - ); - - return Err(()); - } let mut right = self.build_expression( ctx, AccessContext { @@ -13064,11 +13938,26 @@ impl<'ast> Builder<'ast, '_> { ); } + let dispatch = self.resolve_compound_operator( + ctx, plain_op, local_type, left.span, + )?; Ok(Expression { - kind: ExprKind::Binary { - left: Box::new(left), - operator, - right: Box::new(right), + kind: match dispatch { + CompoundOperatorDispatch::Concrete(method_id) => { + ExprKind::CompoundAssign { + target: Box::new(left), + rhs: Box::new(right), + method_id, + } + } + CompoundOperatorDispatch::Generic { + abstract_method_id, + } => ExprKind::GenericCompoundAssign { + target: Box::new(left), + rhs: Box::new(right), + abstract_method_id, + self_type: local_type, + }, }, ty: TypeIndex::UNIT, span: expr.span, @@ -13078,25 +13967,6 @@ impl<'ast> Builder<'ast, '_> { let global_index = self.tir.expect_global_index(id); let global = self.tir.globals.get(global_index as usize).unwrap(); - - if !global.ty.inner.is_primitive() { - self.tir.diagnostics.push( - report_binary_operator_cannot_be_applied( - TypeFormatter::new(&self.tir, self.interner), - BinaryOperatorCannotBeAppliedDiagnostic { - file_id: ctx.resolve_context.file_id, - operator, - operand: Spanned { - inner: global.ty.inner, - span: left.span, - }, - }, - ), - ); - - return Err(()); - } - let global_type = global.ty.inner; let mut right = self.build_expression( ctx, @@ -13128,34 +13998,37 @@ impl<'ast> Builder<'ast, '_> { ); } + let dispatch = self.resolve_compound_operator( + ctx, + plain_op, + global_type, + left.span, + )?; Ok(Expression { - kind: ExprKind::Binary { - left: Box::new(left), - operator, - right: Box::new(right), + kind: match dispatch { + CompoundOperatorDispatch::Concrete(method_id) => { + ExprKind::CompoundAssign { + target: Box::new(left), + rhs: Box::new(right), + method_id, + } + } + CompoundOperatorDispatch::Generic { + abstract_method_id, + } => ExprKind::GenericCompoundAssign { + target: Box::new(left), + rhs: Box::new(right), + abstract_method_id, + self_type: global_type, + }, }, ty: TypeIndex::UNIT, span: expr.span, }) } - ExprKind::Load { place } => { - let inner_ty = place.ty; - if !inner_ty.is_primitive() { - self.tir.diagnostics.push( - report_binary_operator_cannot_be_applied( - TypeFormatter::new(&self.tir, self.interner), - BinaryOperatorCannotBeAppliedDiagnostic { - file_id: ctx.resolve_context.file_id, - operator, - operand: Spanned { - inner: inner_ty, - span: left.span, - }, - }, - ), - ); - return Err(()); - } + ExprKind::Load { place } => { + let inner_ty = place.ty; + let left_span = left.span; let mut right_expr = self.build_expression( ctx, AccessContext { @@ -13174,7 +14047,7 @@ impl<'ast> Builder<'ast, '_> { file_id: ctx.resolve_context.file_id, left_type: Spanned { inner: inner_ty, - span: left.span, + span: left_span, }, operator, right_type: Spanned { @@ -13185,17 +14058,26 @@ impl<'ast> Builder<'ast, '_> { ), ); } - let left_span = left.span; - let left_ty = left.ty; + let dispatch = self.resolve_compound_operator( + ctx, plain_op, inner_ty, left_span, + )?; Ok(Expression { - kind: ExprKind::Binary { - left: Box::new(Expression { - kind: ExprKind::Load { place }, - ty: left_ty, - span: left_span, - }), - operator, - right: Box::new(right_expr), + kind: match dispatch { + CompoundOperatorDispatch::Concrete(method_id) => { + ExprKind::CompoundStore { + target: place, + rhs: Box::new(right_expr), + method_id, + } + } + CompoundOperatorDispatch::Generic { + abstract_method_id, + } => ExprKind::GenericCompoundStore { + target: place, + rhs: Box::new(right_expr), + abstract_method_id, + self_type: inner_ty, + }, }, ty: TypeIndex::UNIT, span: expr.span, @@ -13219,22 +14101,6 @@ impl<'ast> Builder<'ast, '_> { }); } let field_ty = left.ty; - if !field_ty.is_primitive() { - self.tir.diagnostics.push( - report_binary_operator_cannot_be_applied( - TypeFormatter::new(&self.tir, self.interner), - BinaryOperatorCannotBeAppliedDiagnostic { - file_id: ctx.resolve_context.file_id, - operator, - operand: Spanned { - inner: field_ty, - span: left.span, - }, - }, - ), - ); - return Err(()); - } let left_span = left.span; let mut right_expr = self.build_expression( ctx, @@ -13265,11 +14131,26 @@ impl<'ast> Builder<'ast, '_> { ), ); } + let dispatch = self.resolve_compound_operator( + ctx, plain_op, field_ty, left_span, + )?; Ok(Expression { - kind: ExprKind::Binary { - left: Box::new(left), - operator, - right: Box::new(right_expr), + kind: match dispatch { + CompoundOperatorDispatch::Concrete(method_id) => { + ExprKind::CompoundAssign { + target: Box::new(left), + rhs: Box::new(right_expr), + method_id, + } + } + CompoundOperatorDispatch::Generic { + abstract_method_id, + } => ExprKind::GenericCompoundAssign { + target: Box::new(left), + rhs: Box::new(right_expr), + abstract_method_id, + self_type: field_ty, + }, }, ty: TypeIndex::UNIT, span: expr.span, @@ -13421,6 +14302,10 @@ impl<'ast> Builder<'ast, '_> { } => (left, right, *operator), _ => unreachable!(), }; + let binary_op = Spanned { + inner: BinaryOp::from(operator.inner), + span: operator.span, + }; let mut left = self.build_expression( ctx, @@ -13462,7 +14347,7 @@ impl<'ast> Builder<'ast, '_> { )); return Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -13472,7 +14357,7 @@ impl<'ast> Builder<'ast, '_> { } Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -13481,56 +14366,16 @@ impl<'ast> Builder<'ast, '_> { }) } (l, ty) if l.is_comptime_number() => { - if !ty.is_primitive() { - self.tir.diagnostics.push( - report_binary_operator_cannot_be_applied( - TypeFormatter::new(&self.tir, self.interner), - BinaryOperatorCannotBeAppliedDiagnostic { - file_id: ctx.resolve_context.file_id, - operator, - operand: Spanned { - inner: ty, - span: right.span, - }, - }, - ), - ); - - return Ok(Expression { - kind: ExprKind::Binary { - operator, - left: Box::new(left), - right: Box::new(right), - }, - ty: TypeIndex::ERROR, - span: expr.span, - }); - } self.coerce_untyped_expr(ctx, &mut left, ty)?; - - Ok(Expression { - kind: ExprKind::Binary { - operator, - left: Box::new(left), - right: Box::new(right), - }, - ty, - span: expr.span, - }) + Ok(self.build_arithmetic_result( + ctx, operator, left, right, ty, expr.span, + )) } (ty, r) if r.is_comptime_number() => { - // TODO: check if primitive self.coerce_untyped_expr(ctx, &mut right, ty)?; - - Ok(Expression { - kind: ExprKind::Binary { - operator, - left: Box::new(left), - right: Box::new(right), - }, - ty, - span: expr.span, - }) + Ok(self.build_arithmetic_result( + ctx, operator, left, right, ty, expr.span, + )) } (l, _) if l == TypeIndex::NEVER => { self.tir.diagnostics.push(report_unreachable_code( @@ -13546,20 +14391,10 @@ impl<'ast> Builder<'ast, '_> { Ok(right) } - (left_type, right_type) - if left_type == right_type - && self.is_arithmetic_type(left_type) => - { - Ok(Expression { - kind: ExprKind::Binary { - operator, - left: Box::new(left), - right: Box::new(right), - }, - ty: left_type, - span: expr.span, - }) - } + (left_type, right_type) if left_type == right_type => Ok(self + .build_arithmetic_result( + ctx, operator, left, right, left_type, expr.span, + )), (left_type, right_type) => { self.tir .diagnostics @@ -13582,7 +14417,7 @@ impl<'ast> Builder<'ast, '_> { if access_ctx.expected_type != TypeIndex::INFER { Ok(Expression { kind: ExprKind::Binary { - operator, + operator: binary_op, left: Box::new(left), right: Box::new(right), }, @@ -13596,16 +14431,13 @@ impl<'ast> Builder<'ast, '_> { } } - /// True when `ty` can be used as an operand in arithmetic or comparison - /// expressions. Extends `is_primitive()` to cover `AssocTypeProjection` - /// types bounded by a typeset (e.g. `M::Size` where `type Size: PointerSize`). - /// Currently all typesets consist entirely of integer primitives, so any - /// typeset-bounded projection is unconditionally accepted here. + /// `true` when `ty` is an `AssocTypeProjection` (e.g. `M::Size` where + /// `type Size: PointerSize`) whose owning trait declares that + /// associated type with a typeset bound. Currently all typesets consist + /// entirely of integer primitives, so any typeset-bounded projection is + /// unconditionally accepted here. /// TODO: re-check each typeset member when non-numeric typesets are added. - fn is_arithmetic_type(&self, ty: TypeIndex) -> bool { - if ty.is_primitive() { - return true; - } + fn is_typeset_bounded_assoc_type(&self, ty: TypeIndex) -> bool { let Type::AssocTypeProjection { trait_index, assoc_name, @@ -15475,133 +16307,38 @@ impl<'ast> Builder<'ast, '_> { }; let formatter = TypeFormatter::new(&self.tir, self.interner); - if target_idx == TypeIndex::I32 { - if value > i32::MAX as i64 || value < i32::MIN as i64 { - self.tir - .diagnostics - .push(report_integer_literal_out_of_range( - formatter, - IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::I32, - value, - span: SourceSpan::new(file_id, expr.span), - }, - )); - } - expr.ty = TypeIndex::I32; - Ok(()) - } else if target_idx == TypeIndex::I64 { - // `value` is already an `i64`, so it can never fall outside - // `i64::MIN..=i64::MAX` — literals too large to parse as `i64` - // are rejected earlier, in `parse_integer_literal`. - expr.ty = TypeIndex::I64; - Ok(()) - } else if target_idx == TypeIndex::U32 { - if value > u32::MAX as i64 || value < 0 { - self.tir - .diagnostics - .push(report_integer_literal_out_of_range( - formatter, - IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::U32, - value, - span: SourceSpan::new(file_id, expr.span), - }, - )); - } - expr.ty = TypeIndex::U32; - Ok(()) - } else if target_idx == TypeIndex::U64 { - // i64 is at most i64::MAX which always fits in u64; only negative values are - // invalid - if value < 0 { - self.tir - .diagnostics - .push(report_integer_literal_out_of_range( - formatter, - IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::U64, - value, - span: SourceSpan::new(file_id, expr.span), - }, - )); - } - expr.ty = TypeIndex::U64; - Ok(()) - } else if target_idx == TypeIndex::U8 { - if value < 0 || value > u8::MAX as i64 { - self.tir - .diagnostics - .push(report_integer_literal_out_of_range( - formatter, - IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::U8, - value, - span: SourceSpan::new(file_id, expr.span), - }, - )); - } - expr.ty = TypeIndex::U8; - Ok(()) - } else if target_idx == TypeIndex::I8 { - if value < i8::MIN as i64 || value > i8::MAX as i64 { - self.tir - .diagnostics - .push(report_integer_literal_out_of_range( - formatter, - IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::I8, - value, - span: SourceSpan::new(file_id, expr.span), - }, - )); - } - expr.ty = TypeIndex::I8; - Ok(()) - } else if target_idx == TypeIndex::U16 { - if value < 0 || value > u16::MAX as i64 { - self.tir - .diagnostics - .push(report_integer_literal_out_of_range( - formatter, - IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::U16, - value, - span: SourceSpan::new(file_id, expr.span), - }, - )); - } - expr.ty = TypeIndex::U16; - Ok(()) - } else if target_idx == TypeIndex::I16 { - if value < i16::MIN as i64 || value > i16::MAX as i64 { - self.tir - .diagnostics - .push(report_integer_literal_out_of_range( - formatter, - IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::I16, - value, - span: SourceSpan::new(file_id, expr.span), - }, - )); - } - expr.ty = TypeIndex::I16; - Ok(()) - } else if target_idx == TypeIndex::CHAR { - if value < 0 || value > u32::MAX as i64 { + // `value` is always the raw, non-negative magnitude as written (see + // `ExprKind::Int`'s doc comment) — negation is a separate `Unary` + // node handled by `coerce_untyped_unary_expr`, never reaching here. + // So every primitive-integer target below only ever needs an + // upper-bound check against its own `MAX` (as `u64`); a lower bound + // can never fire and isn't checked. + let primitive_int_max: Option = match target_idx { + TypeIndex::I32 => Some(i32::MAX as u64), + TypeIndex::I64 => Some(i64::MAX as u64), + TypeIndex::U32 => Some(u32::MAX as u64), + TypeIndex::U64 => Some(u64::MAX), + TypeIndex::U8 => Some(u8::MAX as u64), + TypeIndex::I8 => Some(i8::MAX as u64), + TypeIndex::U16 => Some(u16::MAX as u64), + TypeIndex::I16 => Some(i16::MAX as u64), + TypeIndex::CHAR => Some(u32::MAX as u64), + _ => None, + }; + if let Some(max) = primitive_int_max { + if value > max { self.tir .diagnostics .push(report_integer_literal_out_of_range( formatter, IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::CHAR, - value, + ty: target_idx, + value: value as i64, span: SourceSpan::new(file_id, expr.span), }, )); } - expr.ty = TypeIndex::CHAR; + expr.ty = target_idx; Ok(()) } else if target_idx == TypeIndex::F32 || target_idx == TypeIndex::F64 { self.tir @@ -15616,33 +16353,22 @@ impl<'ast> Builder<'ast, '_> { ) { match self.type_scalar(target_idx) { Some(WasmScalar::I32) => { - if value < 0 || value > u32::MAX as i64 { + if value > u32::MAX as u64 { self.tir.diagnostics.push( report_integer_literal_out_of_range( formatter, IntegerLiteralOutOfRangeDiagnostic { ty: TypeIndex::U32, - value, - span: SourceSpan::new(file_id, expr.span), - }, - ), - ); - } - } - Some(WasmScalar::I64) => { - if value < 0 { - self.tir.diagnostics.push( - report_integer_literal_out_of_range( - formatter, - IntegerLiteralOutOfRangeDiagnostic { - ty: TypeIndex::U64, - value, + value: value as i64, span: SourceSpan::new(file_id, expr.span), }, ), ); } } + // `value` is a `u64`, so it can never exceed `u64::MAX` — + // nothing to check. + Some(WasmScalar::I64) => {} _ => { // Generic pointer (TypeParam memory) — validate against the // `#[tag = "pointer_size"]` typeset (`PointerSize` in std.wx). @@ -15655,7 +16381,7 @@ impl<'ast> Builder<'ast, '_> { }) .map(|idx| &self.tir.typesets[idx as usize]) { - if !ts.intersection_range.contains(value) { + if !ts.intersection_range.contains(value as i64) { let ts_name = self .interner .resolve(ts.name.inner) @@ -15663,7 +16389,7 @@ impl<'ast> Builder<'ast, '_> { .to_string(); self.tir.diagnostics.push( report_integer_literal_out_of_typeset_range( - value, + value as i64, &ts_name, &ts.intersection_range, SourceSpan::new(file_id, expr.span), @@ -15689,10 +16415,10 @@ impl<'ast> Builder<'ast, '_> { .resolve(ts.name.inner) .unwrap_or("?") .to_string(); - if !range.contains(value) { + if !range.contains(value as i64) { self.tir.diagnostics.push( report_integer_literal_out_of_typeset_range( - value, + value as i64, &ts_name, range, SourceSpan::new(file_id, expr.span), @@ -15744,14 +16470,23 @@ impl<'ast> Builder<'ast, '_> { ) -> Result<(), ()> { let file_id = ctx.resolve_context.file_id; let (operand, operator) = match &mut expr.kind { - ExprKind::Unary { operand, operator } => (operand, operator.inner), + ExprKind::Unary { operand, operator } => (operand, *operator), _ => unreachable!(), }; - match operator { - ast::UnaryOp::BitNot | ast::UnaryOp::InvertSign => { - let is_valid = target_idx == TypeIndex::I32 - || target_idx == TypeIndex::I64; + match operator.inner { + // `-x`: valid for any signed numeric target — all four signed + // integer widths plus both floats. Unsigned targets are + // deliberately excluded (`local x: u32 = -1;` must fail to + // coerce, same as negating an already-typed `u32` operand does + // elsewhere). + ast::UnaryOp::InvertSign => { + let is_valid = target_idx == TypeIndex::I8 + || target_idx == TypeIndex::I16 + || target_idx == TypeIndex::I32 + || target_idx == TypeIndex::I64 + || target_idx == TypeIndex::F32 + || target_idx == TypeIndex::F64; if !is_valid { self.tir.diagnostics.push(report_unable_to_coerce( TypeFormatter::new(&self.tir, self.interner), @@ -15760,13 +16495,80 @@ impl<'ast> Builder<'ast, '_> { )); return Err(()); } + + // Two's-complement's negative range holds one more + // magnitude than its positive range (e.g. `i8::MIN` is + // `-128` but `i8::MAX` is only `127`). `operand` here is + // always the un-negated positive literal, so delegating + // straight to `coerce_untyped_expr` would range-check + // that magnitude against the ordinary (narrower) + // positive-max bound and wrongly reject exactly the + // most-negative value of each width (`-128i8`, + // `-32768i16`, `-2147483648i32`, + // `-9223372036854775808i64`) — check the true + // negation-aware bound here instead, and skip the + // generic recursive coercion for this shape entirely. + if let ExprKind::Int { value } = operand.kind { + let max_magnitude: u64 = match target_idx { + TypeIndex::I8 => i8::MIN.unsigned_abs() as u64, + TypeIndex::I16 => i16::MIN.unsigned_abs() as u64, + TypeIndex::I32 => i32::MIN.unsigned_abs() as u64, + TypeIndex::I64 => i64::MIN.unsigned_abs(), + // F32/F64: no integer range to check. + _ => u64::MAX, + }; + if value > max_magnitude { + self.tir.diagnostics.push( + report_integer_literal_out_of_range( + TypeFormatter::new(&self.tir, self.interner), + IntegerLiteralOutOfRangeDiagnostic { + ty: target_idx, + value: (value as i64).wrapping_neg(), + span: SourceSpan::new(file_id, expr.span), + }, + ), + ); + } + operand.ty = target_idx; + } else { + self.coerce_untyped_expr(ctx, operand, target_idx)?; + } + } + // `^x`: valid for any integer width, signed or unsigned — sign + // doesn't matter for bitwise complement. + ast::UnaryOp::BitNot => { + if !target_idx.is_integer() { + self.tir.diagnostics.push(report_unable_to_coerce( + TypeFormatter::new(&self.tir, self.interner), + target_idx, + SourceSpan::new(file_id, expr.span), + )); + return Err(()); + } + self.coerce_untyped_expr(ctx, operand, target_idx)?; } _ => unreachable!(), } - self.coerce_untyped_expr(ctx, operand, target_idx).map(|_| { - let _: () = expr.ty = target_idx; - }) + // Same reasoning as `coerce_untyped_binary_expression`'s equivalent + // go-to-definition fix: the node stays `Unary` either way (`Neg`'s + // impls all bottom out in the same intrinsic MIR's native `Neg` + // lowering would use anyway), so this is solely to record the + // operator's own span as an access, for `Runtime` mode only. + if operator.inner == ast::UnaryOp::InvertSign + && let EvalMode::Runtime(traits) = &ctx.mode + && let Some(func_idx) = self.resolve_trait_method( + traits.neg.0, + traits.neg.1, + target_idx, + ) { + self.tir.functions[func_idx as usize] + .accesses + .push(SourceSpan::new(file_id, operator.span)); + } + + expr.ty = target_idx; + Ok(()) } fn coerce_untyped_binary_expression( @@ -15781,42 +16583,56 @@ impl<'ast> Builder<'ast, '_> { operator, left, right, - } => (left, right, operator.inner), + } => (left, right, *operator), _ => unreachable!(), }; - match operator { - operator if operator.is_arithmetic() => { - if !target_idx.is_primitive() { - self.tir.diagnostics.push(report_unable_to_coerce( - TypeFormatter::new(&self.tir, self.interner), - target_idx, - SourceSpan::new(file_id, expr.span), - )); - return Err(()); - } - } - operator if operator.is_bitwise() => { - let is_integer = target_idx == TypeIndex::I32 - || target_idx == TypeIndex::I64 - || target_idx == TypeIndex::U32 - || target_idx == TypeIndex::U64; - if !is_integer { - self.tir.diagnostics.push(report_unable_to_coerce( - TypeFormatter::new(&self.tir, self.interner), - target_idx, - SourceSpan::new(file_id, expr.span), - )); - return Err(()); - } - } - _ => unreachable!(), - }; + // Arithmetic only: unlike `build_arithmetic_expr`, which leaves a + // comptime-comptime `Binary` node's `ty` as the untyped pseudo-type + // for coercion to be deferred to here, `build_bitwise_binary_expr` + // always resolves its own type inline (against `access_ctx`'s + // expected type, or by reporting "type annotation required" itself + // when that's unknown) — so a bitwise `Binary` node is never left + // untyped for this function to reach. + debug_assert!(operator.inner.is_arithmetic()); + if !target_idx.is_primitive() { + self.tir.diagnostics.push(report_unable_to_coerce( + TypeFormatter::new(&self.tir, self.interner), + target_idx, + SourceSpan::new(file_id, expr.span), + )); + return Err(()); + } let left_result = self.coerce_untyped_expr(ctx, left, target_idx); let right_result = self.coerce_untyped_expr(ctx, right, target_idx); match (left_result, right_result) { (Ok(_), Ok(_)) => { + // Both operands were still untyped literals when this + // `Binary` node was first built (`build_arithmetic_expr` + // can't dispatch without a concrete type yet), so trait + // dispatch — for `Runtime` mode only, matching every other + // dispatch site — was deferred until now. The node stays a + // `Binary` either way — MIR's native lowering for + // Add/Sub/Mul/Div/Rem always bottoms out at the same + // intrinsic the resolved trait method would call, so + // there's no correctness reason to rebuild it as a + // `MethodCall` — this is solely to record the operator's own + // span as a go-to-definition access, same as + // `build_operator_dispatch`'s success case. + if operator.inner.is_arithmetic() + && let EvalMode::Runtime(traits) = &ctx.mode + && let Some((trait_index, method_symbol)) = + traits.for_op(operator.inner) + && let Some(func_idx) = self.resolve_trait_method( + trait_index, + method_symbol, + target_idx, + ) { + self.tir.functions[func_idx as usize] + .accesses + .push(SourceSpan::new(file_id, operator.span)); + } expr.ty = target_idx; Ok(()) } @@ -16197,8 +17013,8 @@ impl<'ast> Builder<'ast, '_> { Type::Pointer { to, memory, - mutable, - } => (*to, *memory, *mutable), + ownership, + } => (*to, *memory, *ownership == ast::Ownership::Exclusive), _ => { self.tir.diagnostics.push(report_cannot_deref_non_pointer( SourceSpan::new( @@ -16330,15 +17146,15 @@ impl<'ast> Builder<'ast, '_> { let source_span = SourceSpan::new(func_ctx.resolve_context.file_id, span); - let (expected_of, expected_memory, expected_size, expected_mutable) = + let (expected_of, expected_memory, expected_size, expected_ownership) = match self.tir.types[access_ctx.expected_type.as_usize()].clone() { Type::Array { of, memory, size, - mutable, - } => (of, Some(memory), Some(size), mutable), - _ => (TypeIndex::INFER, None, None, false), + ownership, + } => (of, Some(memory), Some(size), ownership), + _ => (TypeIndex::INFER, None, None, ast::Ownership::Shared), }; if let Some(expected_size) = expected_size { @@ -16439,7 +17255,7 @@ impl<'ast> Builder<'ast, '_> { of: elem_type, size: elements.len() as u32, memory, - mutable: expected_mutable, + ownership: expected_ownership, }); Ok(Expression { @@ -16463,15 +17279,15 @@ impl<'ast> Builder<'ast, '_> { let source_span = SourceSpan::new(func_ctx.resolve_context.file_id, span); - let (expected_of, expected_memory, expected_mutable) = + let (expected_of, expected_memory, expected_ownership) = match self.tir.types[access_ctx.expected_type.as_usize()].clone() { Type::Array { of, memory, - mutable, + ownership, .. - } => (of, Some(memory), mutable), - _ => (TypeIndex::INFER, None, false), + } => (of, Some(memory), ownership), + _ => (TypeIndex::INFER, None, ast::Ownership::Shared), }; let count_built = self.build_expression( @@ -16484,7 +17300,9 @@ impl<'ast> Builder<'ast, '_> { )?; let count = match count_built.kind { - ExprKind::Int { value } if value >= 0 => value as u32, + // `value` is always non-negative (see `ExprKind::Int`'s + // doc comment) — no guard needed. + ExprKind::Int { value } => value as u32, _ => { self.tir.diagnostics.push( report_array_repeat_count_not_const(SourceSpan::new( @@ -16557,7 +17375,7 @@ impl<'ast> Builder<'ast, '_> { of: value.ty, size: count, memory, - mutable: expected_mutable, + ownership: expected_ownership, }); Ok(Expression { @@ -16590,19 +17408,19 @@ impl<'ast> Builder<'ast, '_> { object_expr, )?; - let (elem_type, memory, mutable) = + let (elem_type, memory, ownership) = match self.tir.types[object.ty.as_usize()].clone() { Type::Array { of, memory, - mutable, + ownership, .. - } => (of, memory, mutable), + } => (of, memory, ownership), Type::Slice { of, memory, - mutable, - } => (of, memory, mutable), + ownership, + } => (of, memory, ownership), Type::Error => return Err(()), _ => { self.tir.diagnostics.push(report_index_on_non_indexable( @@ -16617,6 +17435,7 @@ impl<'ast> Builder<'ast, '_> { return Err(()); } }; + let mutable = ownership == ast::Ownership::Exclusive; if matches!( access_ctx.access_kind, @@ -16692,19 +17511,19 @@ impl<'ast> Builder<'ast, '_> { object_expr, )?; - let (elem_type, memory, mutable) = + let (elem_type, memory, ownership) = match self.tir.types[object.ty.as_usize()].clone() { Type::Array { of, memory, - mutable, + ownership, .. - } => (of, memory, mutable), + } => (of, memory, ownership), Type::Slice { of, memory, - mutable, - } => (of, memory, mutable), + ownership, + } => (of, memory, ownership), Type::Error => return Err(()), _ => { self.tir.diagnostics.push(report_index_on_non_indexable( @@ -16765,7 +17584,7 @@ impl<'ast> Builder<'ast, '_> { let result_ty = self.intern_type(Type::Slice { of: elem_type, memory, - mutable, + ownership, }); Ok(Expression { kind: ExprKind::SliceRange { diff --git a/crates/wx-compiler/src/tir/mod.rs b/crates/wx-compiler/src/tir/mod.rs index 56794f1..5e4dff5 100644 --- a/crates/wx-compiler/src/tir/mod.rs +++ b/crates/wx-compiler/src/tir/mod.rs @@ -148,18 +148,18 @@ pub enum Type { Pointer { to: TypeIndex, memory: TypeIndex, - mutable: bool, + ownership: ast::Ownership, }, Array { of: TypeIndex, size: u32, memory: TypeIndex, - mutable: bool, + ownership: ast::Ownership, }, Slice { of: TypeIndex, memory: TypeIndex, - mutable: bool, + ownership: ast::Ownership, }, Namespace { namespace_idx: u32, @@ -545,14 +545,95 @@ pub enum PlaceKind { }, } +/// `ast::BinaryOp` minus its six assignment variants (`Assign` and the five +/// `*Assign` compound forms). By the time an expression reaches +/// `ExprKind::Binary`, assignment has already been routed to its own nodes +/// (`Assign`, `Store`, `CompoundAssign`, `GenericCompoundAssign`, +/// `CompoundStore`, `GenericCompoundStore`) — giving `Binary` its own operator +/// type makes that split enforced by the compiler (an exhaustive match can +/// never again accidentally construct `Binary` with an assignment operator) +/// rather than merely a convention. +#[derive(Clone, Copy, PartialEq, Eq)] +#[cfg_attr(debug_assertions, derive(Debug))] +#[cfg_attr(test, derive(serde::Serialize))] +pub enum BinaryOp { + Add, + Sub, + Mul, + Div, + Rem, + Eq, + NotEq, + Less, + LessEq, + Greater, + GreaterEq, + And, + Or, + BitAnd, + BitOr, + BitXor, + LeftShift, + RightShift, +} + +impl From for BinaryOp { + fn from(op: ast::BinaryOp) -> Self { + match op { + ast::BinaryOp::Add => BinaryOp::Add, + ast::BinaryOp::Sub => BinaryOp::Sub, + ast::BinaryOp::Mul => BinaryOp::Mul, + ast::BinaryOp::Div => BinaryOp::Div, + ast::BinaryOp::Rem => BinaryOp::Rem, + ast::BinaryOp::Eq => BinaryOp::Eq, + ast::BinaryOp::NotEq => BinaryOp::NotEq, + ast::BinaryOp::Less => BinaryOp::Less, + ast::BinaryOp::LessEq => BinaryOp::LessEq, + ast::BinaryOp::Greater => BinaryOp::Greater, + ast::BinaryOp::GreaterEq => BinaryOp::GreaterEq, + ast::BinaryOp::And => BinaryOp::And, + ast::BinaryOp::Or => BinaryOp::Or, + ast::BinaryOp::BitAnd => BinaryOp::BitAnd, + ast::BinaryOp::BitOr => BinaryOp::BitOr, + ast::BinaryOp::BitXor => BinaryOp::BitXor, + ast::BinaryOp::LeftShift => BinaryOp::LeftShift, + ast::BinaryOp::RightShift => BinaryOp::RightShift, + ast::BinaryOp::Assign + | ast::BinaryOp::AddAssign + | ast::BinaryOp::SubAssign + | ast::BinaryOp::MulAssign + | ast::BinaryOp::DivAssign + | ast::BinaryOp::RemAssign => unreachable!( + "assignment operators never reach tir::ExprKind::Binary — \ + they are represented by dedicated Assign/CompoundAssign-family nodes" + ), + } + } +} + +impl BinaryOp { + pub fn is_arithmetic(&self) -> bool { + matches!( + self, + BinaryOp::Add + | BinaryOp::Sub + | BinaryOp::Mul + | BinaryOp::Div + | BinaryOp::Rem + ) + } +} + #[cfg_attr(debug_assertions, derive(Debug))] #[cfg_attr(test, derive(serde::Serialize))] pub enum ExprKind { Error, Placeholder, Unreachable, + /// Mirrors `ast::Expression::Int`: the raw, non-negative magnitude as + /// written, never itself negative — see that type's doc comment. Int { - value: i64, + value: u64, }, Float { value: f64, @@ -591,7 +672,7 @@ pub enum ExprKind { operand: Box, }, Binary { - operator: ast::Spanned, + operator: ast::Spanned, left: Box, right: Box, }, @@ -690,16 +771,77 @@ pub enum ExprKind { Load { place: Box, }, - /// Take the address of a memory place (`.&` / `.&mut` postfix operators). + /// Take the address of a memory place (`.&` postfix operator). Always + /// produces a shared reference. AddressOf { place: Box, - mutable: bool, }, /// Store a value to a memory place (assignment through a place). Store { target: Box, value: Box, }, + /// `x = y` for a `Local`/`Global`/`FieldAccess`/`Placeholder` target — + /// the non-`Place` counterpart of `Store`. Kept as its own node (rather + /// than reusing `Binary`) so `Binary`'s operator can be the assignment- + /// free `tir::BinaryOp` — see that type's doc comment. + Assign { + left: Box, + right: Box, + }, + /// `x += y` and friends where `x`'s type is already concrete and a real + /// `Add`-style impl was found — sugar over `x = x.add(y)`, but its own + /// node (rather than desugared into a `MethodCall` at TIR-build time, + /// the way plain `+` is) because `target` would otherwise have to be + /// built twice — once to read the current value, once as the + /// assignment target — which isn't safe in general since `Expression` + /// isn't `Clone` and a `target` may itself embed side-effecting + /// sub-expressions. `target` is `Local`/`Global`/`FieldAccess` only — + /// `Load{place}` targets use `CompoundStore` instead, since a `Place` + /// needs its own once-only-lowering treatment distinct from an + /// `Expression`'s. `method_id` is the resolved `Add`-style impl method. + CompoundAssign { + target: Box, + rhs: Box, + method_id: ast::DefId, + }, + /// The `CompoundAssign` counterpart for when `target`'s type isn't + /// concrete yet at TIR-build time (a bare `TypeParam` or a + /// typeset-bounded `AssocTypeProjection`) — `abstract_method_id` is the + /// trait's own abstract method declaration (no body) and `self_type` is + /// `target`'s (still abstract) type, mirroring `GenericMethodCall`'s + /// `type_args[0] = Self` convention (stored bare rather than as a + /// single-element `type_args` slice since none of the operator traits' + /// methods carry any generics of their own beyond the implicit `Self`). + /// Resolved for real once monomorphization substitutes a concrete + /// `Self`, via the exact same `find_trait_impl` fallback + /// `GenericMethodCall` already uses for abstract trait methods at + /// MIR-lowering time — no new resolution machinery. + GenericCompoundAssign { + target: Box, + rhs: Box, + abstract_method_id: ast::DefId, + self_type: TypeIndex, + }, + /// The `Load{place}`-targeted analogue of `CompoundAssign`, named to + /// mirror `Store`. Needed as a distinct node (rather than reusing + /// `CompoundAssign` with `target: Load{place}`) because a `Place`'s + /// address must be computed exactly once and reused for both the old- + /// value read and the store — MIR lowers `target` directly as a + /// `Place`, not as an `Expression` wrapping one. + CompoundStore { + target: Box, + rhs: Box, + method_id: ast::DefId, + }, + /// The `Load{place}`-targeted analogue of `GenericCompoundAssign` — see + /// both `CompoundStore` and `GenericCompoundAssign`'s doc comments. + GenericCompoundStore { + target: Box, + rhs: Box, + abstract_method_id: ast::DefId, + self_type: TypeIndex, + }, } #[cfg_attr(debug_assertions, derive(Debug))] @@ -1486,6 +1628,8 @@ define_diagnostic_codes! { InvalidPattern => "E1068", InvalidMemoryLimitsAttribute => "E1069", UnreachableMatchArm => "W1010", + MissingTypeAliasBody => "E1070", + EnumVariantRequiresExplicitValue => "E1071", } } @@ -1557,6 +1701,7 @@ pub struct TypeAlias { pub namespace: Option, pub pub_span: Option, pub name: Spanned, + pub attributes: Box<[ItemAttribute]>, /// Empty for non-generic aliases. pub type_params: Box<[TypeParamInfo]>, /// The alias's target type, fully resolved. For a generic alias this may @@ -1564,10 +1709,22 @@ pub struct TypeAlias { /// placeholders, substituted via `substitute_type` at each reference site /// that supplies concrete type arguments — the alias is transparent and /// never appears past TIR. - pub template: TypeIndex, + /// + /// Not `Option`: always resolved by the time anyone reads it + /// (falls back to `TypeIndex::ERROR`, never absent), even for bodiless + /// `#[intrinsic] type u8;` declarations. To check whether source actually + /// wrote `= Type`, look at `attributes` for `ItemAttribute::Intrinsic`. + pub body: TypeIndex, pub accesses: Vec, } +fn ownership_sigil(ownership: ast::Ownership) -> char { + match ownership { + ast::Ownership::Exclusive => '*', + ast::Ownership::Shared => '&', + } +} + pub struct TypeFormatter<'a> { tir: &'a TIR, pub interner: &'a ast::StringInterner, @@ -1670,43 +1827,39 @@ impl<'a> TypeFormatter<'a> { Type::Pointer { to, memory, - mutable, + ownership, } => { self.write_type(f, *memory)?; - f.write_str("::*")?; - if *mutable { - f.write_str("mut ")?; - } + f.write_str("::")?; + f.write_char(ownership_sigil(*ownership))?; self.write_type(f, *to)?; Ok(()) } Type::Slice { of, memory, - mutable, + ownership, } => { self.write_type(f, *memory)?; - f.write_str("::[]")?; - if *mutable { - f.write_str("mut ")?; - } + f.write_str("::")?; + f.write_char(ownership_sigil(*ownership))?; + f.write_char('[')?; self.write_type(f, *of)?; + f.write_char(']')?; Ok(()) } Type::Array { of, size, memory, - mutable, + ownership, } => { self.write_type(f, *memory)?; - write!( - f, - "::[{}]{}", - size, - if *mutable { "mut " } else { "" } - )?; + f.write_str("::")?; + f.write_char(ownership_sigil(*ownership))?; + f.write_char('[')?; self.write_type(f, *of)?; + write!(f, "; {}]", size)?; Ok(()) } Type::Tuple { elements } => { diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_identity_resolves.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_identity_resolves.snap index 4f14c10..57e65c3 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_identity_resolves.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_identity_resolves.snap @@ -26,217 +26,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 19 + - 19 + - 19 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 21 + - 21 + - 21 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 23 + - 23 + - 23 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 25 + - 25 + - 25 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 27 + - 27 + - 27 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 29 + - 29 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 31 + - 31 + - 31 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 33 + - 33 + - 33 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 35 + - 35 + - 35 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 37 + - 37 + - 37 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 39 + - 39 + - 39 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 41 + - 41 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 20 - mutable: false + memory: 44 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 22 + trait_index: 12 + assoc_name: 62 + base: 46 - Function: signature: items: - - 20 - - 22 - - 25 + - 44 + - 46 + - 49 params_count: 2 - Function: signature: items: - - 20 - - 22 + - 44 + - 46 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 19 + trait_index: 14 + assoc_name: 61 + base: 43 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 28 + trait_index: 12 + assoc_name: 62 + base: 52 - Function: signature: items: - - 19 - - 28 - - 29 + - 43 + - 52 + - 53 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 31 + trait_index: 14 + assoc_name: 61 + base: 55 - Function: signature: items: - - 31 - - 32 + - 55 + - 56 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 35 - memory: 34 - mutable: false + of: 59 + memory: 58 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 34 + trait_index: 14 + assoc_name: 61 + base: 58 - Function: signature: items: - - 36 - - 37 + - 60 + - 61 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 40 - memory: 39 - mutable: false + of: 64 + memory: 63 + ownership: Shared - Pointer: - to: 40 - memory: 39 - mutable: false + to: 64 + memory: 63 + ownership: Shared - Function: signature: items: - - 41 - - 42 + - 65 + - 66 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 45 - memory: 44 - mutable: false + to: 69 + memory: 68 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 44 + trait_index: 14 + assoc_name: 61 + base: 68 - Slice: - of: 45 - memory: 44 - mutable: false + of: 69 + memory: 68 + ownership: Shared - Function: signature: items: - - 46 - - 47 - - 48 + - 70 + - 71 + - 72 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 50 + trait_index: 14 + assoc_name: 61 + base: 74 - Function: signature: items: - - 51 + - 75 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 53 + trait_index: 14 + assoc_name: 61 + base: 77 - Function: signature: items: - - 54 + - 78 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 56 - mutable: true + memory: 80 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 56 + trait_index: 14 + assoc_name: 61 + base: 80 - Function: signature: items: - - 57 + - 81 - 6 - - 58 + - 82 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 61 - mutable: true + memory: 85 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 63 - mutable: false + memory: 87 + ownership: Shared - Function: signature: items: - - 62 - - 64 - - 60 + - 86 + - 88 + - 84 - 2 params_count: 3 - Function: @@ -269,6 +399,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -377,14 +561,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 89 + trait_index: 14 + assoc_name: 61 + base: 132 - TypeParam: owner: ImplBlock: 2 @@ -392,248 +647,263 @@ types: - Struct: struct_index: 0 args: - - 91 + - 134 - Function: signature: items: - - 92 + - 135 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 91 + trait_index: 14 + assoc_name: 61 + base: 134 - Function: signature: items: - - 94 - - 92 + - 137 + - 135 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 96 + trait_index: 15 + assoc_name: 57 + base: 139 - Pointer: - to: 96 - memory: 97 - mutable: true + to: 139 + memory: 140 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 99 - memory: 97 - mutable: true + to: 142 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 99 - - 100 + - 141 + - 142 + - 143 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 97 + trait_index: 14 + assoc_name: 61 + base: 140 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 103 - memory: 97 - mutable: true + of: 146 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 102 - - 104 + - 141 + - 145 + - 147 params_count: 2 - Struct: struct_index: 0 args: - - 97 + - 140 - Pointer: to: 6 - memory: 97 - mutable: true + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 106 - - 107 + - 141 + - 149 + - 150 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 110 - memory: 109 - mutable: false + to: 153 + memory: 152 + ownership: Shared - Function: signature: items: - - 111 + - 154 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 114 - memory: 113 - mutable: true + to: 157 + memory: 156 + ownership: Exclusive - Function: signature: items: - - 115 + - 158 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 118 - memory: 117 - mutable: false + to: 161 + memory: 160 + ownership: Shared - Function: signature: items: - - 119 + - 162 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 122 - memory: 121 - mutable: false + to: 165 + memory: 164 + ownership: Shared - Pointer: - to: 122 - memory: 121 - mutable: true + to: 165 + memory: 164 + ownership: Exclusive - Function: signature: items: - - 123 - - 124 + - 166 + - 167 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 127 - memory: 126 - mutable: false + to: 170 + memory: 169 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 126 + trait_index: 14 + assoc_name: 61 + base: 169 - Function: signature: items: - - 128 - - 129 - - 128 + - 171 + - 172 + - 171 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 132 - memory: 131 - mutable: false + to: 175 + memory: 174 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 131 + trait_index: 14 + assoc_name: 61 + base: 174 - Function: signature: items: - - 133 - - 134 - - 133 + - 176 + - 177 + - 176 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 137 - memory: 136 - mutable: true + to: 180 + memory: 179 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 136 + trait_index: 14 + assoc_name: 61 + base: 179 - Function: signature: items: - - 138 - - 139 - - 138 + - 181 + - 182 + - 181 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 142 - memory: 141 - mutable: true + to: 185 + memory: 184 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 141 + trait_index: 14 + assoc_name: 61 + base: 184 - Function: signature: items: - - 143 - - 144 - - 143 + - 186 + - 187 + - 186 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 189 + - Function: + signature: + items: + - 190 + - 190 + - 190 params_count: 2 - TypeParam: owner: @@ -644,28 +914,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 147 - memory: 146 - mutable: false + of: 193 + memory: 192 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 146 + trait_index: 14 + assoc_name: 61 + base: 192 - Function: signature: items: - - 148 - - 149 + - 194 + - 195 params_count: 1 - Pointer: - to: 147 - memory: 146 - mutable: false + to: 193 + memory: 192 + ownership: Shared - Function: signature: items: - - 148 - - 151 + - 194 + - 197 params_count: 1 - Function: signature: @@ -681,6585 +951,4452 @@ types: params_count: 1 - TypeParam: owner: - Function: 106 + Function: 402 param_index: 0 - Function: signature: items: - - 155 - - 155 + - 201 + - 201 params_count: 1 - FunctionItem: - id: 1 - type_args: - - 1 + id: 58 + type_args: [] - FunctionItem: - id: 2 - type_args: - - 1 + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 + type_args: + - 1 + - FunctionItem: + id: 39 + type_args: + - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 159 + - 247 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 159 + - 247 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 162 + - 250 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 162 + - 250 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 99 + - 142 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 103 - memory: 97 - mutable: false + to: 146 + memory: 140 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 103 + - 146 - Slice: - of: 103 - memory: 97 - mutable: false + of: 146 + memory: 140 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 117 + trait_index: 14 + assoc_name: 61 + base: 160 - FunctionItem: - id: 6 + id: 43 type_args: - - 127 - - 126 + - 170 + - 169 - FunctionItem: - id: 6 + id: 43 type_args: - - 132 - - 131 + - 175 + - 174 - FunctionItem: - id: 6 + id: 43 type_args: - - 137 - - 136 + - 180 + - 179 - FunctionItem: - id: 6 + id: 43 type_args: - - 142 - - 141 + - 185 + - 184 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 146 - mutable: false + memory: 192 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 diagnostics: [] functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 30 + signature_index: 54 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 19 + inner: 43 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 28 + inner: 52 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 29 + inner: 53 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 33 + signature_index: 57 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 31 + inner: 55 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 32 + inner: 56 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 38 + signature_index: 62 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 36 + inner: 60 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 37 + inner: 61 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 43 + signature_index: 67 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 41 + inner: 65 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 42 + inner: 66 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 49 + signature_index: 73 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 46 + inner: 70 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 47 + inner: 71 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 48 + inner: 72 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 52 + signature_index: 76 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 51 + inner: 75 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 55 + signature_index: 79 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 54 + inner: 78 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 59 + signature_index: 83 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 57 + inner: 81 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 58 + inner: 82 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 65 + signature_index: 89 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 62 + inner: 86 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 64 + inner: 88 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 60 + inner: 84 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 93 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 93 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 97 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 + span: + start: 3058 + end: 3059 + ty: + inner: 11 span: - start: 1813 - end: 1816 + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1863 - end: 1868 + start: 3103 + end: 3104 ty: - inner: 12 + inner: 13 + span: + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 + span: + start: 3111 + end: 3112 + ty: + inner: 13 span: - start: 1870 - end: 1873 + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 + start: 3159 + end: 3162 + - mut_span: ~ + name: + inner: 101 + span: + start: 3164 + end: 3165 + ty: + inner: 14 + span: + start: 3167 + end: 3170 result: - inner: 11 + inner: 14 span: - start: 1933 - end: 1936 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 30 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1952 - end: 1955 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 56 + inner: 104 span: - start: 1959 - end: 1972 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1973 - end: 1978 + start: 3209 + end: 3210 ty: - inner: 14 + inner: 15 + span: + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 + ty: + inner: 15 span: - start: 1980 - end: 1983 + start: 3220 + end: 3223 result: - inner: 10 + inner: 15 span: - start: 1988 - end: 1991 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 31 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 81 + signature_index: 97 name: - inner: 57 + inner: 105 span: - start: 2014 - end: 2027 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 + span: + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 + span: + start: 3270 + end: 3271 + ty: + inner: 11 span: - start: 2035 - end: 2038 + start: 3273 + end: 3276 result: inner: 11 span: - start: 2043 - end: 2046 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 32 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 98 name: - inner: 58 + inner: 106 span: - start: 2069 - end: 2082 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3315 + end: 3316 ty: - inner: 15 + inner: 13 + span: + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 span: - start: 2090 - end: 2093 + start: 3326 + end: 3329 result: - inner: 10 + inner: 13 span: - start: 2098 - end: 2101 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 33 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 99 name: - inner: 59 + inner: 107 span: - start: 2124 - end: 2137 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2145 - end: 2148 + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 result: - inner: 13 + inner: 14 span: - start: 2153 - end: 2156 - accesses: [] + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 34 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 100 name: - inner: 60 + inner: 108 span: - start: 2179 - end: 2192 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3421 + end: 3422 ty: - inner: 14 + inner: 15 span: - start: 2200 - end: 2203 + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 + span: + start: 3429 + end: 3430 + ty: + inner: 15 + span: + start: 3432 + end: 3435 result: - inner: 12 + inner: 15 span: - start: 2208 - end: 2211 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 35 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 97 name: - inner: 61 + inner: 109 span: - start: 2234 - end: 2247 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2248 - end: 2253 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 + span: + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 + span: + start: 3482 + end: 3483 + ty: + inner: 11 span: - start: 2255 - end: 2258 + start: 3485 + end: 3488 result: - inner: 13 + inner: 11 span: - start: 2263 - end: 2266 - accesses: [] + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 36 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 98 name: - inner: 62 + inner: 110 span: - start: 2289 - end: 2302 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3527 + end: 3528 ty: - inner: 15 + inner: 13 span: - start: 2310 - end: 2313 + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 + span: + start: 3535 + end: 3536 + ty: + inner: 13 + span: + start: 3538 + end: 3541 result: - inner: 12 + inner: 13 span: - start: 2318 - end: 2321 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 37 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 99 name: - inner: 63 + inner: 111 span: - start: 2344 - end: 2359 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3580 + end: 3581 ty: inner: 14 span: - start: 2367 - end: 2370 + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 + span: + start: 3588 + end: 3589 + ty: + inner: 14 + span: + start: 3591 + end: 3594 result: - inner: 15 + inner: 14 span: - start: 2375 - end: 2378 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 38 + - id: 75 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3618 + end: 3621 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 100 name: - inner: 64 + inner: 112 span: - start: 2401 - end: 2415 + start: 3625 + end: 3632 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 span: - start: 2416 - end: 2421 + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 + span: + start: 3641 + end: 3642 ty: inner: 15 span: - start: 2423 - end: 2426 + start: 3644 + end: 3647 result: - inner: 14 + inner: 15 span: - start: 2431 - end: 2434 - accesses: [] + start: 3652 + end: 3655 + accesses: + - file_id: 0 + span: + start: 12438 + end: 12445 attributes: - Intrinsic body: ~ - - id: 80 + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 112 + signature_index: 97 name: - inner: 93 + inner: 113 span: - start: 4588 - end: 4592 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 111 + inner: 11 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 111 - expected_type: 111 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 111 - span: - start: 4632 - end: 4633 - ty: 111 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 116 + signature_index: 101 name: - inner: 94 + inner: 114 span: - start: 4671 - end: 4679 - params: [] + start: 3731 + end: 3738 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3739 + end: 3740 + ty: + inner: 10 + span: + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 result: - inner: 115 + inner: 10 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 115 - expected_type: 115 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 115 - span: - start: 4723 - end: 4724 - ty: 115 + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3777 + end: 3780 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 120 + signature_index: 98 name: - inner: 95 + inner: 115 span: - start: 4762 - end: 4769 + start: 3784 + end: 3791 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3792 + end: 3793 + ty: + inner: 13 + span: + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 span: - start: 4786 - end: 4789 + start: 3800 + end: 3801 ty: - inner: 119 + inner: 13 span: - start: 4791 - end: 4798 + start: 3803 + end: 3806 result: - inner: 16 + inner: 13 span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 119 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 171 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 171 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3811 + end: 3814 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 - span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: - inner: 13 - span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 125 + signature_index: 102 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 123 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 124 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 123 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 124 - expected_type: 124 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 124 - span: - start: 4936 - end: 4939 - ty: 124 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 + start: 3883 + end: 3886 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 117 + span: + start: 3890 + end: 3897 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 + start: 3898 + end: 3899 + ty: + inner: 14 span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3901 + end: 3904 + - mut_span: ~ + name: + inner: 101 + span: + start: 3906 + end: 3907 + ty: + inner: 14 + span: + start: 3909 + end: 3912 + result: + inner: 14 + span: + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 + attributes: + - Intrinsic + body: ~ + - id: 81 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 130 + signature_index: 100 name: - inner: 98 + inner: 118 span: - start: 4977 - end: 4980 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3951 + end: 3952 ty: - inner: 128 + inner: 15 span: - start: 5002 - end: 5009 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3959 + end: 3960 ty: - inner: 129 + inner: 15 span: - start: 5018 - end: 5027 + start: 3962 + end: 3965 result: - inner: 128 + inner: 15 span: - start: 5032 - end: 5039 - accesses: [] + start: 3970 + end: 3973 + accesses: + - file_id: 0 + span: + start: 12539 + end: 12546 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 128 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 128 - expected_type: 128 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 129 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 129 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 127 - - 126 - arguments: [] - ty: 129 - span: - start: 5078 - end: 5097 - ty: 129 - span: - start: 5070 - end: 5097 - ty: 128 - span: - start: 5051 - end: 5097 - ty: 128 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 + start: 3989 + end: 3992 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 119 + span: + start: 3996 + end: 4003 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 + start: 4004 + end: 4005 + ty: + inner: 11 span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 4007 + end: 4010 + - mut_span: ~ + name: + inner: 101 + span: + start: 4012 + end: 4013 + ty: + inner: 11 + span: + start: 4015 + end: 4018 + result: + inner: 11 + span: + start: 4023 + end: 4026 + accesses: + - file_id: 0 + span: + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4042 + end: 4045 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 135 + signature_index: 101 name: - inner: 99 + inner: 120 span: - start: 5136 - end: 5139 + start: 4049 + end: 4056 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 4057 + end: 4058 ty: - inner: 133 + inner: 10 span: - start: 5161 - end: 5168 + start: 4060 + end: 4063 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 4065 + end: 4066 ty: - inner: 134 + inner: 10 span: - start: 5177 - end: 5186 + start: 4068 + end: 4071 result: - inner: 133 + inner: 10 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 133 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 133 - expected_type: 133 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 134 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 134 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 132 - - 131 - arguments: [] - ty: 134 - span: - start: 5237 - end: 5256 - ty: 134 - span: - start: 5229 - end: 5256 - ty: 133 - span: - start: 5210 - end: 5256 - ty: 133 + start: 4076 + end: 4079 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 + attributes: + - Intrinsic + body: ~ + - id: 84 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 4095 + end: 4098 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 121 + span: + start: 4102 + end: 4109 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: + start: 4110 + end: 4111 + ty: inner: 13 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4113 + end: 4116 + - mut_span: ~ + name: + inner: 101 + span: + start: 4118 + end: 4119 + ty: + inner: 13 + span: + start: 4121 + end: 4124 + result: + inner: 13 + span: + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 + attributes: + - Intrinsic + body: ~ + - id: 85 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 140 + signature_index: 102 name: - inner: 100 + inner: 122 span: - start: 5295 - end: 5302 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4163 + end: 4164 ty: - inner: 138 + inner: 12 span: - start: 5324 - end: 5335 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4171 + end: 4172 ty: - inner: 139 + inner: 12 span: - start: 5344 - end: 5353 + start: 4174 + end: 4177 result: - inner: 138 + inner: 12 span: - start: 5358 - end: 5369 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 138 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 138 - expected_type: 138 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 139 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 139 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 137 - - 136 - arguments: [] - ty: 139 - span: - start: 5408 - end: 5427 - ty: 139 - span: - start: 5400 - end: 5427 - ty: 138 - span: - start: 5381 - end: 5427 - ty: 138 + start: 4182 + end: 4185 + accesses: + - file_id: 0 span: - start: 5370 - end: 5439 - - id: 87 + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 - span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: - inner: 13 - span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4201 + end: 4204 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 145 + signature_index: 97 name: - inner: 101 + inner: 123 span: - start: 5466 - end: 5473 + start: 4208 + end: 4218 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4219 + end: 4220 ty: - inner: 143 + inner: 11 span: - start: 5495 - end: 5506 + start: 4222 + end: 4225 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4227 + end: 4228 ty: - inner: 144 + inner: 11 span: - start: 5515 - end: 5524 + start: 4230 + end: 4233 result: - inner: 143 + inner: 11 span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 143 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 143 - expected_type: 143 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 144 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 144 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 142 - - 141 - arguments: [] - ty: 144 - span: - start: 5579 - end: 5598 - ty: 144 - span: - start: 5571 - end: 5598 - ty: 143 - span: - start: 5552 - end: 5598 - ty: 143 + start: 4238 + end: 4241 + accesses: + - file_id: 0 span: - start: 5541 - end: 5610 - - id: 106 - file_id: 1 - namespace: ~ + start: 6924 + end: 6934 + - file_id: 0 + span: + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 + file_id: 0 + namespace: 0 parent: ~ pub_span: - start: 12 - end: 15 - type_params: - - name: - inner: 13 - span: - start: 28 - end: 29 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 1 - span: - start: 34 - end: 35 - - file_id: 1 - span: - start: 40 - end: 41 + start: 4257 + end: 4260 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 156 + signature_index: 98 name: - inner: 117 + inner: 124 span: - start: 19 - end: 27 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 118 + inner: 100 span: - start: 31 - end: 32 + start: 4275 + end: 4276 ty: - inner: 155 + inner: 13 span: - start: 34 - end: 35 + start: 4278 + end: 4281 + - mut_span: ~ + name: + inner: 101 + span: + start: 4283 + end: 4284 + ty: + inner: 13 + span: + start: 4286 + end: 4289 result: - inner: 155 + inner: 13 span: - start: 40 - end: 41 - accesses: [] - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 42 - end: 51 - locals: - - name: - inner: 118 - span: - start: 31 - end: 32 - ty: 155 - mut_span: ~ - accesses: - - span: - start: 48 - end: 49 - kind: Read - inferred_type: 155 - expected_type: 155 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 155 - span: - start: 48 - end: 49 - ty: 155 + start: 4294 + end: 4297 + accesses: + - file_id: 0 span: - start: 42 - end: 51 - - id: 68 + start: 9522 + end: 9532 + - file_id: 0 + span: + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4313 + end: 4316 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 26 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 79 + inner: 125 span: - start: 3404 - end: 3408 + start: 4320 + end: 4329 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4330 + end: 4331 ty: - inner: 20 + inner: 11 span: - start: 3409 - end: 3413 + start: 4333 + end: 4336 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4338 + end: 4339 ty: - inner: 22 + inner: 11 span: - start: 3422 - end: 3432 + start: 4341 + end: 4344 result: - inner: 25 + inner: 11 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 22 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 25 - expected_type: 25 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 22 - span: - start: 3484 - end: 3489 - ty: 25 - span: - start: 3466 - end: 3490 - ty: 25 + start: 4349 + end: 4352 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 7032 + end: 7041 + - file_id: 0 + span: + start: 8300 + end: 8309 + - file_id: 0 + span: + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 + attributes: + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4368 + end: 4371 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 81 + inner: 126 span: - start: 3519 - end: 3523 + start: 4375 + end: 4384 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4385 + end: 4386 ty: - inner: 20 + inner: 13 span: - start: 3524 - end: 3528 - result: - inner: 22 - span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 22 - expected_type: 22 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3566 - end: 3570 - ty: 22 - span: - start: 3554 - end: 3571 - ty: 22 - span: - start: 3544 - end: 3577 - - id: 72 - file_id: 0 - namespace: 0 - parent: - GenericImpl: 2 - pub_span: - start: 3718 - end: 3721 - type_params: - - name: + start: 4388 + end: 4391 + - mut_span: ~ + name: + inner: 101 + span: + start: 4393 + end: 4394 + ty: inner: 13 span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 93 - name: - inner: 84 - span: - start: 3725 - end: 3727 - params: [] + start: 4396 + end: 4399 result: - inner: 92 + inner: 13 span: - start: 3736 - end: 3740 + start: 4404 + end: 4407 accesses: - file_id: 0 span: - start: 4226 - end: 4228 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 159 - - 91 - arguments: [] - ty: 94 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 159 - - 91 - arguments: [] - ty: 94 - span: - start: 3788 - end: 3803 - ty: 92 - span: - start: 3751 - end: 3805 - ty: 92 + start: 9630 + end: 9639 + - file_id: 0 span: - start: 3741 - end: 3811 - - id: 73 + start: 10898 + end: 10907 + attributes: + - Intrinsic + body: ~ + - id: 90 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 95 + start: 4423 + end: 4426 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 85 + inner: 127 span: - start: 3838 - end: 3843 + start: 4430 + end: 4440 params: - mut_span: ~ name: - inner: 86 + inner: 100 span: - start: 3847 - end: 3852 + start: 4441 + end: 4442 ty: - inner: 94 + inner: 11 + span: + start: 4444 + end: 4447 + - mut_span: ~ + name: + inner: 101 span: - start: 3854 - end: 3863 + start: 4449 + end: 4450 + ty: + inner: 11 + span: + start: 4452 + end: 4455 result: - inner: 92 + inner: 11 span: - start: 3868 - end: 3872 + start: 4460 + end: 4463 accesses: - file_id: 0 span: - start: 4470 - end: 4475 + start: 7141 + end: 7151 + - file_id: 0 + span: + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 94 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 162 - - 91 - arguments: [] - ty: 94 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 94 - span: - start: 3938 - end: 3943 - ty: 94 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 162 - - 91 - arguments: [] - ty: 94 - span: - start: 3898 - end: 3913 - ty: 92 - span: - start: 3883 - end: 3945 - ty: 92 + - Intrinsic + body: ~ + - id: 91 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4479 + end: 4482 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 128 + span: + start: 4486 + end: 4496 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4497 + end: 4498 + ty: + inner: 13 + span: + start: 4500 + end: 4503 + - mut_span: ~ + name: + inner: 101 + span: + start: 4505 + end: 4506 + ty: + inner: 13 + span: + start: 4508 + end: 4511 + result: + inner: 13 + span: + start: 4516 + end: 4519 + accesses: + - file_id: 0 span: - start: 3873 - end: 3951 - - id: 76 + start: 9739 + end: 9749 + - file_id: 0 + span: + start: 11040 + end: 11050 + attributes: + - Intrinsic + body: ~ + - id: 92 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4535 + end: 4538 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 108 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 88 + inner: 129 span: - start: 4007 - end: 4014 + start: 4542 + end: 4549 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4550 + end: 4551 ty: - inner: 98 + inner: 11 span: - start: 4021 - end: 4041 + start: 4553 + end: 4556 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4558 + end: 4559 ty: - inner: 106 + inner: 11 span: - start: 4051 - end: 4068 + start: 4561 + end: 4564 result: - inner: 107 + inner: 11 span: - start: 4073 - end: 4091 + start: 4569 + end: 4572 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 7245 + end: 7252 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 93 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: + parent: ~ + pub_span: + start: 4588 + end: 4591 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 130 + span: + start: 4595 + end: 4602 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4603 + end: 4604 + ty: inner: 13 span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 + start: 4606 + end: 4609 + - mut_span: ~ + name: + inner: 101 + span: + start: 4611 + end: 4612 + ty: + inner: 13 + span: + start: 4614 + end: 4617 + result: + inner: 13 + span: + start: 4622 + end: 4625 + accesses: + - file_id: 0 + span: + start: 9843 + end: 9850 + - file_id: 0 + span: + start: 11177 + end: 11184 + attributes: + - Intrinsic + body: ~ + - id: 94 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4641 + end: 4644 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 131 + span: + start: 4648 + end: 4655 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4656 + end: 4657 + ty: + inner: 11 + span: + start: 4659 + end: 4662 + - mut_span: ~ + name: + inner: 101 + span: + start: 4664 + end: 4665 + ty: + inner: 11 + span: + start: 4667 + end: 4670 + result: + inner: 11 + span: + start: 4675 + end: 4678 + accesses: + - file_id: 0 + span: + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 + attributes: + - Intrinsic + body: ~ + - id: 95 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4694 + end: 4697 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 signature_index: 101 name: - inner: 90 + inner: 132 span: - start: 4115 - end: 4120 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4709 + end: 4710 ty: - inner: 98 + inner: 10 span: - start: 4130 - end: 4150 + start: 4712 + end: 4715 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4717 + end: 4718 ty: - inner: 99 + inner: 10 span: - start: 4159 - end: 4160 + start: 4720 + end: 4723 result: - inner: 100 + inner: 10 span: - start: 4165 - end: 4182 - accesses: [] + start: 4728 + end: 4731 + accesses: + - file_id: 0 + span: + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 100 - expected_type: 100 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 97 - - 99 - arguments: [] - ty: 106 - span: - start: 4218 - end: 4235 - ty: 100 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4267 - end: 4270 - ty: 99 - memory: 97 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 99 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4290 - end: 4293 - ty: 100 - span: - start: 4183 - end: 4299 - - id: 78 + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 105 + parent: ~ + pub_span: + start: 4747 + end: 4750 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 92 + inner: 133 span: - start: 4322 - end: 4333 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4337 - end: 4341 + start: 4762 + end: 4763 ty: - inner: 98 + inner: 13 span: - start: 4343 - end: 4363 + start: 4765 + end: 4768 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4770 + end: 4771 ty: - inner: 102 + inner: 13 span: - start: 4370 - end: 4385 + start: 4773 + end: 4776 result: - inner: 104 + inner: 13 span: - start: 4390 - end: 4408 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 102 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 104 - expected_type: 104 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 97 - - 103 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 97 - - 103 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4481 - end: 4484 - ty: 106 - span: - start: 4462 - end: 4485 - ty: 168 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4517 - end: 4520 - ty: 104 - span: - start: 4419 - end: 4531 - ty: 104 + start: 4781 + end: 4784 + accesses: + - file_id: 0 span: - start: 4409 - end: 4542 - - id: 88 + start: 9944 + end: 9951 + attributes: + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 150 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 102 name: - inner: 18 + inner: 134 span: - start: 5671 - end: 5674 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 5675 - end: 5679 + start: 4815 + end: 4816 ty: - inner: 148 + inner: 12 span: - start: 5675 - end: 5679 - result: - inner: 149 - span: - start: 5684 - end: 5693 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 149 - expected_type: 149 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5714 - end: 5718 - ty: 149 - span: - start: 5704 - end: 5719 - ty: 149 - span: - start: 5694 - end: 5725 - - id: 89 - file_id: 0 - namespace: 0 - parent: - GenericImpl: 3 - pub_span: - start: 5745 - end: 5748 - type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 152 - name: - inner: 91 - span: - start: 5752 - end: 5755 - params: + start: 4818 + end: 4821 - mut_span: ~ name: - inner: 80 + inner: 101 span: - start: 5756 - end: 5760 + start: 4823 + end: 4824 ty: - inner: 148 + inner: 12 span: - start: 5756 - end: 5760 + start: 4826 + end: 4829 result: - inner: 151 + inner: 12 span: - start: 5765 - end: 5772 - accesses: [] + start: 4834 + end: 4837 + accesses: + - file_id: 0 + span: + start: 11303 + end: 11310 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 151 - expected_type: 151 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5793 - end: 5797 - ty: 151 - span: - start: 5783 - end: 5798 - ty: 151 + - Intrinsic + body: ~ + - id: 98 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4853 + end: 4856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 135 + span: + start: 4860 + end: 4870 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 4871 + end: 4876 + ty: + inner: 11 + span: + start: 4878 + end: 4881 + result: + inner: 11 + span: + start: 4886 + end: 4889 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 7442 + end: 7452 + - file_id: 0 + span: + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 + attributes: + - Intrinsic + body: ~ + - id: 99 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4905 + end: 4908 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 96 name: - inner: 104 + inner: 136 span: - start: 5887 - end: 5905 + start: 4912 + end: 4922 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 5906 - end: 5910 + start: 4923 + end: 4928 ty: - inner: 17 + inner: 13 span: - start: 5906 - end: 5910 + start: 4930 + end: 4933 result: - inner: 17 + inner: 13 + span: + start: 4938 + end: 4941 + accesses: + - file_id: 0 + span: + start: 10040 + end: 10050 + - file_id: 0 + span: + start: 11407 + end: 11417 + attributes: + - Intrinsic + body: ~ + - id: 100 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4957 + end: 4960 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 137 + span: + start: 4964 + end: 4979 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 4980 + end: 4985 + ty: + inner: 11 + span: + start: 4987 + end: 4990 + result: + inner: 14 span: - start: 5915 - end: 5919 + start: 4995 + end: 4998 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 - span: - start: 5920 - end: 6063 - - id: 93 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 104 name: - inner: 106 + inner: 138 span: - start: 6090 - end: 6108 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6109 - end: 6113 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6109 - end: 6113 + start: 5044 + end: 5047 result: - inner: 17 + inner: 14 span: - start: 6118 - end: 6122 + start: 5052 + end: 5055 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 - span: - start: 6123 - end: 6266 - - id: 94 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 105 name: - inner: 108 + inner: 139 span: - start: 6293 - end: 6301 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6302 - end: 6306 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6302 - end: 6306 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6311 - end: 6315 + start: 5109 + end: 5112 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 - span: - start: 6316 - end: 6353 - - id: 95 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 106 name: - inner: 107 + inner: 140 span: - start: 6380 - end: 6398 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 6399 - end: 6403 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 6408 - end: 6412 - accesses: - - file_id: 0 - span: - start: 6141 - end: 6159 + start: 5166 + end: 5169 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 - span: - start: 6413 - end: 6455 - - id: 96 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 107 name: - inner: 105 + inner: 141 span: - start: 6482 - end: 6500 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 6501 - end: 6505 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 6510 - end: 6514 - accesses: - - file_id: 0 - span: - start: 5938 - end: 5956 + start: 5223 + end: 5226 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 - span: - start: 6515 - end: 6557 - - id: 97 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 108 name: - inner: 109 + inner: 142 span: - start: 6584 - end: 6603 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 6604 - end: 6608 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 6613 - end: 6617 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 109 name: - inner: 110 + inner: 143 span: - start: 6720 - end: 6734 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 6735 - end: 6739 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 6744 - end: 6748 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 110 name: - inner: 111 + inner: 144 span: - start: 6818 - end: 6839 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 6840 - end: 6844 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 6849 - end: 6853 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 108 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5413 + end: 5416 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 111 name: - inner: 112 + inner: 145 span: - start: 7011 - end: 7030 + start: 5420 + end: 5433 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5434 + end: 5439 ty: - inner: 17 + inner: 14 span: - start: 7031 - end: 7035 + start: 5441 + end: 5444 result: - inner: 16 + inner: 11 span: - start: 7040 - end: 7044 + start: 5449 + end: 5452 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 109 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5468 + end: 5471 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 112 name: - inner: 113 + inner: 146 span: - start: 7213 - end: 7229 + start: 5475 + end: 5488 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5489 + end: 5494 ty: - inner: 17 + inner: 14 span: - start: 7230 - end: 7234 + start: 5496 + end: 5499 result: - inner: 16 + inner: 10 span: - start: 7239 - end: 7243 + start: 5504 + end: 5507 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 110 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5523 + end: 5526 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 113 name: - inner: 114 + inner: 147 span: - start: 7326 - end: 7343 + start: 5530 + end: 5543 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5544 + end: 5549 ty: - inner: 17 + inner: 15 span: - start: 7344 - end: 7348 + start: 5551 + end: 5554 result: - inner: 16 + inner: 11 span: - start: 7353 - end: 7357 + start: 5559 + end: 5562 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 111 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5578 + end: 5581 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 114 name: - inner: 115 + inner: 148 span: - start: 7515 - end: 7535 + start: 5585 + end: 5598 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5599 + end: 5604 ty: - inner: 17 + inner: 15 span: - start: 7536 - end: 7540 + start: 5606 + end: 5609 result: - inner: 16 + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 + name: + inner: 149 + span: + start: 5640 + end: 5653 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5654 + end: 5659 + ty: + inner: 14 + span: + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 113 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 + name: + inner: 150 + span: + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 + name: + inner: 151 + span: + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5764 + end: 5769 + ty: + inner: 15 + span: + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 + name: + inner: 152 + span: + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5819 + end: 5824 + ty: + inner: 15 + span: + start: 5826 + end: 5829 + result: + inner: 12 + span: + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 153 + span: + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 + span: + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 154 + span: + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 + span: + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 155 + name: + inner: 178 + span: + start: 21343 + end: 21347 + params: [] + result: + inner: 154 span: - start: 7545 - end: 7549 + start: 21369 + end: 21376 accesses: [] attributes: - Inline @@ -7271,51 +5408,11 @@ functions: label: ~ parent: ~ span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 - kind: Read - inferred_type: 16 - expected_type: 16 + start: 21377 + end: 21399 + locals: [] + inferred_type: 154 + expected_type: 154 block: kind: Block: @@ -7323,359 +5420,170 @@ functions: expressions: [] result: kind: - Binary: - operator: - inner: BitOr - span: - start: 7687 - end: 7688 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 - span: - start: 7560 - end: 7674 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 - span: - start: 7690 - end: 7716 - ty: 16 + Int: + value: 0 + ty: 154 span: - start: 7560 - end: 7717 - ty: 16 + start: 21387 + end: 21388 + ty: 154 span: - start: 7550 - end: 7723 - - id: 104 + start: 21377 + end: 21399 + - id: 376 file_id: 0 - namespace: 0 - parent: - GenericImpl: 4 + namespace: 1 + parent: ~ pub_span: - start: 7743 - end: 7746 - type_params: [] - type_param_parent: - ImplBlock: 4 + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 159 name: - inner: 116 + inner: 179 span: - start: 7750 - end: 7766 - params: - - mut_span: ~ - name: - inner: 80 + start: 21426 + end: 21434 + params: [] + result: + inner: 158 + span: + start: 21456 + end: 21463 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21464 + end: 21486 + locals: [] + inferred_type: 158 + expected_type: 158 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 158 + span: + start: 21474 + end: 21475 + ty: 158 + span: + start: 21464 + end: 21486 + - id: 377 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 163 + name: + inner: 180 + span: + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 span: - start: 7767 - end: 7771 + start: 21537 + end: 21540 ty: - inner: 17 + inner: 162 span: - start: 7767 - end: 7771 + start: 21542 + end: 21549 result: inner: 16 span: - start: 7776 - end: 7780 + start: 21554 + end: 21558 accesses: [] attributes: - Inline @@ -7687,24 +5595,20 @@ functions: label: ~ parent: ~ span: - start: 7781 - end: 7823 + start: 21559 + end: 21596 locals: - name: - inner: 80 + inner: 176 span: - start: 7767 - end: 7771 - ty: 17 + start: 21537 + end: 21540 + ty: 162 mut_span: ~ accesses: - span: - start: 7791 - end: 7795 - kind: Read - - span: - start: 7806 - end: 7810 + start: 21569 + end: 21572 kind: Read inferred_type: 16 expected_type: 16 @@ -7717,1133 +5621,24517 @@ functions: kind: Binary: operator: - inner: And + inner: Eq + span: + start: 21586 + end: 21588 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 259 + span: + start: 21569 + end: 21572 + right: + kind: + Int: + value: 0 + ty: 259 + span: + start: 21589 + end: 21590 + ty: 16 + span: + start: 21569 + end: 21590 + ty: 16 + span: + start: 21559 + end: 21596 + - id: 378 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 168 + name: + inner: 181 + span: + start: 21623 + end: 21631 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: + inner: 166 + span: + start: 21653 + end: 21660 + result: + inner: 167 + span: + start: 21665 + end: 21672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21673 + end: 21697 + locals: + - name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: 166 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 167 + expected_type: 167 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 167 + span: + start: 21683 + end: 21686 + ty: 167 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 173 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 171 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 172 + span: + start: 21765 + end: 21774 + result: + inner: 171 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 171 + mut_span: ~ + accesses: + - span: + start: 21798 + end: 21801 + kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 172 + mut_span: ~ + accesses: + - span: + start: 21817 + end: 21822 + kind: Read + inferred_type: 171 + expected_type: 171 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add span: - start: 7803 - end: 7805 + start: 21815 + end: 21816 left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 172 + span: + start: 21798 + end: 21801 + right: kind: Binary: operator: - inner: GreaterEq + inner: Mul span: - start: 7796 - end: 7798 + start: 21823 + end: 21824 left: kind: Local: scope_index: 0 - local_index: 0 - ty: 17 + local_index: 1 + ty: 172 span: - start: 7791 - end: 7795 + start: 21817 + end: 21822 right: kind: - Char: - value: "!" - ty: 17 + GenericCall: + id: 43 + type_args: + - 170 + - 169 + arguments: [] + ty: 172 span: - start: 7799 - end: 7802 - ty: 16 + start: 21825 + end: 21844 + ty: 172 + span: + start: 21817 + end: 21844 + ty: 171 + span: + start: 21798 + end: 21844 + ty: 171 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 178 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 176 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 177 + span: + start: 21924 + end: 21933 + result: + inner: 176 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 176 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 176 + expected_type: 176 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 177 span: - start: 7791 - end: 7802 + start: 21957 + end: 21960 right: kind: Binary: operator: - inner: LessEq + inner: Mul span: - start: 7811 - end: 7813 + start: 21982 + end: 21983 left: kind: Local: scope_index: 0 - local_index: 0 - ty: 17 + local_index: 1 + ty: 177 span: - start: 7806 - end: 7810 + start: 21976 + end: 21981 right: kind: - Char: - value: "~" - ty: 17 + GenericCall: + id: 43 + type_args: + - 175 + - 174 + arguments: [] + ty: 177 span: - start: 7814 - end: 7817 - ty: 16 + start: 21984 + end: 22003 + ty: 177 span: - start: 7806 - end: 7817 - ty: 16 + start: 21976 + end: 22003 + ty: 176 span: - start: 7791 - end: 7817 - ty: 16 + start: 21957 + end: 22003 + ty: 176 span: - start: 7781 - end: 7823 -globals: [] -memories: [] -namespaces: - - name: 0 + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: - trait_index: 0 - assoc_name: 10 - ? - Type - - 26 - : TypeSet: - typeset_index: 1 - ? - Type - - 66 - : TypeSet: - typeset_index: 0 - ? - Type - - 70 - : Trait: - trait_index: 0 - ? - Type - - 71 - : Trait: - trait_index: 1 - ? - Type - - 72 - : TraitAssocType: - trait_index: 1 - assoc_name: 72 - ? - Type - - 82 - : Struct: - struct_index: 0 - ? - Type - - 87 - : Trait: - trait_index: 3 - ? - Type - - 91 - : Module: - namespace_idx: 1 - ? - Value - - 1 - : Const: - const_index: 0 - ? - Value - - 4 - : Function: - func_index: 0 - ? - Value - - 11 - : Function: - func_index: 1 - ? - Value - - 12 - : Function: - func_index: 2 - ? - Value - - 15 - : Function: - func_index: 3 - ? - Value - - 16 - : Function: - func_index: 4 - ? - Value - - 19 - : Function: - func_index: 5 - ? - Value - - 20 - : Function: - func_index: 6 - ? - Value - - 21 - : Function: - func_index: 7 - ? - Value - - 25 - : Function: - func_index: 8 - ? - Value - - 30 - : Function: - func_index: 9 - ? - Value - - 34 - : Function: - func_index: 10 - ? - Value - - 36 - : Function: - func_index: 11 - ? - Value - - 37 - : Function: - func_index: 12 - ? - Value - - 39 - : Function: - func_index: 13 - ? - Value - - 41 - : Function: - func_index: 14 - ? - Value - - 42 - : Function: - func_index: 15 - ? - Value - - 43 - : Function: - func_index: 16 - ? - Value - - 44 - : Function: - func_index: 17 - ? - Value - - 45 - : Function: - func_index: 18 - ? - Value - - 46 - : Function: - func_index: 19 - ? - Value - - 47 - : Function: - func_index: 20 - ? - Value - - 48 - : Function: - func_index: 21 - ? - Value - - 49 - : Function: - func_index: 22 - ? - Value - - 50 - : Function: - func_index: 23 - ? - Value - - 51 - : Function: - func_index: 24 - ? - Value - - 52 - : Function: - func_index: 25 + pub_span: + start: 22035 + end: 22038 + type_params: + - name: + inner: 57 + span: + start: 22050 + end: 22053 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22055 + end: 22061 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22071 + end: 22074 + - file_id: 0 + span: + start: 22087 + end: 22090 + - file_id: 0 + span: + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 + span: + start: 22160 + end: 22163 + - name: + inner: 65 + span: + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22077 + end: 22078 + - file_id: 0 + span: + start: 22107 + end: 22108 + - file_id: 0 + span: + start: 22157 + end: 22158 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 183 + name: + inner: 182 + span: + start: 22042 + end: 22049 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: + inner: 181 + span: + start: 22071 + end: 22078 + - mut_span: ~ + name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: + inner: 182 + span: + start: 22087 + end: 22096 + result: + inner: 181 + span: + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 181 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 181 + expected_type: 181 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 182 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 182 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 180 + - 179 + arguments: [] + ty: 182 + span: + start: 22147 + end: 22166 + ty: 182 + span: + start: 22139 + end: 22166 + ty: 181 + span: + start: 22120 + end: 22166 + ty: 181 + span: + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 + span: + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 + span: + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 188 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: + inner: 186 + span: + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: + inner: 187 + span: + start: 22250 + end: 22259 + result: + inner: 186 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 186 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 186 + expected_type: 186 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 187 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 187 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 185 + - 184 + arguments: [] + ty: 187 + span: + start: 22310 + end: 22329 + ty: 187 + span: + start: 22302 + end: 22329 + ty: 186 + span: + start: 22283 + end: 22329 + ty: 186 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 + span: + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 191 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: + inner: 190 + span: + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: + inner: 190 + span: + start: 22414 + end: 22423 + result: + inner: 190 + span: + start: 22428 + end: 22437 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 190 + expected_type: 190 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 190 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 190 + span: + start: 22469 + end: 22470 + ty: 190 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22503 + end: 22507 + ty: 190 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22512 + end: 22516 + ty: 190 + span: + start: 22511 + end: 22516 + ty: 190 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22567 + end: 22573 + ty: 190 + span: + start: 22438 + end: 22579 + - id: 402 + file_id: 1 + namespace: ~ + parent: ~ + pub_span: + start: 12 + end: 15 + type_params: + - name: + inner: 65 + span: + start: 28 + end: 29 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 1 + span: + start: 34 + end: 35 + - file_id: 1 + span: + start: 40 + end: 41 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 202 + name: + inner: 202 + span: + start: 19 + end: 27 + params: + - mut_span: ~ + name: + inner: 203 + span: + start: 31 + end: 32 + ty: + inner: 201 + span: + start: 34 + end: 35 + result: + inner: 201 + span: + start: 40 + end: 41 + accesses: [] + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 42 + end: 51 + locals: + - name: + inner: 203 + span: + start: 31 + end: 32 + ty: 201 + mut_span: ~ + accesses: + - span: + start: 48 + end: 49 + kind: Read + inferred_type: 201 + expected_type: 201 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 201 + span: + start: 48 + end: 49 + ty: 201 + span: + start: 42 + end: 51 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 20 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 19 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 19 + span: + start: 425 + end: 429 + result: + inner: 19 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 22 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 21 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 21 + span: + start: 502 + end: 506 + result: + inner: 21 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 24 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 23 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 23 + span: + start: 579 + end: 583 + result: + inner: 23 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 26 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 25 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 25 + span: + start: 656 + end: 660 + result: + inner: 25 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 28 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 27 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 27 + span: + start: 733 + end: 737 + result: + inner: 27 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 30 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 29 + span: + start: 799 + end: 803 + result: + inner: 29 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 32 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 31 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 31 + span: + start: 885 + end: 889 + result: + inner: 31 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 34 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 33 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 33 + span: + start: 968 + end: 972 + result: + inner: 33 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 36 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 35 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 35 + span: + start: 1054 + end: 1058 + result: + inner: 35 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 38 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 37 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 37 + span: + start: 1131 + end: 1135 + result: + inner: 37 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 40 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 39 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 39 + span: + start: 1208 + end: 1212 + result: + inner: 39 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 42 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 41 + span: + start: 1283 + end: 1287 + result: + inner: 41 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 50 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 44 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 46 + span: + start: 20204 + end: 20214 + result: + inner: 49 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 46 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 49 + expected_type: 49 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 46 + span: + start: 20266 + end: 20271 + ty: 49 + span: + start: 20248 + end: 20272 + ty: 49 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 44 + span: + start: 20306 + end: 20310 + result: + inner: 46 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 46 + expected_type: 46 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20348 + end: 20352 + ty: 46 + span: + start: 20336 + end: 20353 + ty: 46 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 203 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 204 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 223 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 224 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 225 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 230 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 232 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 233 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 234 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 235 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 236 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 237 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 238 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 239 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 240 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 241 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 242 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 243 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 244 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 136 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 135 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 247 + - 134 + arguments: [] + ty: 137 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 247 + - 134 + arguments: [] + ty: 137 + span: + start: 20570 + end: 20585 + ty: 135 + span: + start: 20533 + end: 20587 + ty: 135 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 138 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 137 + span: + start: 20636 + end: 20645 + result: + inner: 135 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 137 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 250 + - 134 + arguments: [] + ty: 137 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 137 + span: + start: 20720 + end: 20725 + ty: 137 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 250 + - 134 + arguments: [] + ty: 137 + span: + start: 20680 + end: 20695 + ty: 135 + span: + start: 20665 + end: 20727 + ty: 135 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 151 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 141 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 149 + span: + start: 20829 + end: 20846 + result: + inner: 150 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 144 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 141 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 142 + span: + start: 20929 + end: 20930 + result: + inner: 143 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 143 + expected_type: 143 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 140 + - 142 + arguments: [] + ty: 149 + span: + start: 20984 + end: 21001 + ty: 143 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21029 + end: 21032 + ty: 142 + memory: 140 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 142 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21052 + end: 21055 + ty: 143 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 148 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 141 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 145 + span: + start: 21128 + end: 21143 + result: + inner: 147 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 145 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 147 + expected_type: 147 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 140 + - 146 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 140 + - 146 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21236 + end: 21239 + ty: 149 + span: + start: 21217 + end: 21240 + ty: 256 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21272 + end: 21275 + ty: 147 + span: + start: 21174 + end: 21286 + ty: 147 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 196 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 194 + span: + start: 22645 + end: 22649 + result: + inner: 195 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 195 + expected_type: 195 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22684 + end: 22688 + ty: 195 + span: + start: 22674 + end: 22689 + ty: 195 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 198 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 194 + span: + start: 22726 + end: 22730 + result: + inner: 197 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 197 + expected_type: 197 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22763 + end: 22767 + ty: 197 + span: + start: 22753 + end: 22768 + ty: 197 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 24773 + end: 24775 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24766 + end: 24768 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24761 + end: 24765 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24769 + end: 24772 + ty: 16 + span: + start: 24761 + end: 24772 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24781 + end: 24783 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24776 + end: 24780 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24784 + end: 24787 + ty: 16 + span: + start: 24776 + end: 24787 + ty: 16 + span: + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: + trait_index: 0 + ? - Type + - 23 + : Trait: + trait_index: 1 + ? - Type + - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 + : TypeSet: + typeset_index: 1 + ? - Type + - 158 + : TypeSet: + typeset_index: 0 + ? - Type + - 159 + : Trait: + trait_index: 12 + ? - Type + - 160 + : Trait: + trait_index: 13 + ? - Type + - 161 + : TraitAssocType: + trait_index: 13 + assoc_name: 161 + ? - Type + - 167 + : Struct: + struct_index: 0 + ? - Type + - 172 + : Trait: + trait_index: 15 + ? - Type + - 176 + : Module: + namespace_idx: 1 + ? - Value + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 ? - Value - - 53 + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 : Function: func_index: 26 ? - Value - - 54 + - 102 : Function: func_index: 27 ? - Value - - 55 + - 103 : Function: func_index: 28 ? - Value - - 56 + - 104 : Function: func_index: 29 ? - Value - - 57 + - 105 : Function: func_index: 30 ? - Value - - 58 + - 106 : Function: func_index: 31 ? - Value - - 59 + - 107 : Function: func_index: 32 ? - Value - - 60 + - 108 : Function: func_index: 33 ? - Value - - 61 + - 109 : Function: func_index: 34 ? - Value - - 62 + - 110 : Function: func_index: 35 ? - Value - - 63 + - 111 : Function: func_index: 36 ? - Value - - 64 + - 112 : Function: func_index: 37 ? - Value - - 102 + - 113 + : Function: + func_index: 38 + ? - Value + - 114 + : Function: + func_index: 39 + ? - Value + - 115 + : Function: + func_index: 40 + ? - Value + - 116 + : Function: + func_index: 41 + ? - Value + - 117 + : Function: + func_index: 42 + ? - Value + - 118 + : Function: + func_index: 43 + ? - Value + - 119 + : Function: + func_index: 44 + ? - Value + - 120 + : Function: + func_index: 45 + ? - Value + - 121 + : Function: + func_index: 46 + ? - Value + - 122 + : Function: + func_index: 47 + ? - Value + - 123 + : Function: + func_index: 48 + ? - Value + - 124 + : Function: + func_index: 49 + ? - Value + - 125 + : Function: + func_index: 50 + ? - Value + - 126 + : Function: + func_index: 51 + ? - Value + - 127 + : Function: + func_index: 52 + ? - Value + - 128 + : Function: + func_index: 53 + ? - Value + - 129 + : Function: + func_index: 54 + ? - Value + - 130 + : Function: + func_index: 55 + ? - Value + - 131 + : Function: + func_index: 56 + ? - Value + - 132 + : Function: + func_index: 57 + ? - Value + - 133 + : Function: + func_index: 58 + ? - Value + - 134 + : Function: + func_index: 59 + ? - Value + - 135 + : Function: + func_index: 60 + ? - Value + - 136 + : Function: + func_index: 61 + ? - Value + - 137 + : Function: + func_index: 62 + ? - Value + - 138 + : Function: + func_index: 63 + ? - Value + - 139 + : Function: + func_index: 64 + ? - Value + - 140 + : Function: + func_index: 65 + ? - Value + - 141 + : Function: + func_index: 66 + ? - Value + - 142 + : Function: + func_index: 67 + ? - Value + - 143 + : Function: + func_index: 68 + ? - Value + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 : Const: const_index: 1 wildcard_imports: [] accesses: - - file_id: 1 + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: [] +enums: [] +exports: {} +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 133 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 133 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 45 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 204 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 + span: + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 + span: + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 + span: + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 + accesses: + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 + accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 + span: + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 + span: + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 + span: + start: 13511 + end: 13514 + - file_id: 0 + span: + start: 13612 + end: 13615 + - file_id: 0 + span: + start: 13737 + end: 13740 + - file_id: 0 + span: + start: 13749 + end: 13752 + - file_id: 0 + span: + start: 13875 + end: 13878 + - file_id: 0 + span: + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 + span: + start: 14280 + end: 14283 + - file_id: 0 + span: + start: 14292 + end: 14295 + - file_id: 0 + span: + start: 14402 + end: 14405 + - file_id: 0 + span: + start: 14518 + end: 14521 + - file_id: 0 + span: + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 + span: + start: 18219 + end: 18222 + - file_id: 0 + span: + start: 18231 + end: 18234 + - file_id: 0 + span: + start: 18359 + end: 18362 + - file_id: 0 + span: + start: 18371 + end: 18374 + - file_id: 0 + span: + start: 18502 + end: 18505 + - file_id: 0 + span: + start: 18514 + end: 18517 + - file_id: 0 + span: + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - id: 5 + file_id: 0 + namespace: 0 + pub_span: + start: 151 + end: 154 + name: + inner: 7 + span: + start: 160 + end: 163 + attributes: + - Intrinsic + type_params: [] + body: 10 + accesses: + - file_id: 0 + span: + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 + - file_id: 0 + span: + start: 3750 + end: 3753 + - file_id: 0 + span: + start: 3758 + end: 3761 + - file_id: 0 + span: + start: 4060 + end: 4063 + - file_id: 0 + span: + start: 4068 + end: 4071 + - file_id: 0 + span: + start: 4076 + end: 4079 + - file_id: 0 + span: + start: 4712 + end: 4715 + - file_id: 0 + span: + start: 4720 + end: 4723 + - file_id: 0 + span: + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ - name: - inner: 91 - span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: [] -enums: [] -exports: {} -structs: - - id: 71 + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 file_id: 0 namespace: 0 pub_span: - start: 3581 - end: 3584 + start: 179 + end: 182 name: - inner: 82 + inner: 8 span: - start: 3592 - end: 3598 - type_params: - - name: - inner: 5 - span: - start: 3599 - end: 3602 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3604 - end: 3610 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3628 - end: 3631 - - file_id: 0 - span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 - span: - start: 3622 - end: 3626 - ty: - inner: 90 - span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 - span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 - span: - start: 3915 - end: 3919 - - name: - inner: 83 - span: - start: 3647 - end: 3652 - ty: - inner: 90 - span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 - accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 - span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 accesses: - file_id: 0 span: - start: 3686 - end: 3692 + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 - file_id: 0 span: - start: 4051 - end: 4057 + start: 10297 + end: 10300 - file_id: 0 span: - start: 4218 - end: 4224 + start: 10309 + end: 10312 - file_id: 0 span: - start: 4462 - end: 4468 -traits: - - id: 45 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 70 - span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 + start: 10431 + end: 10434 + - file_id: 0 span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] - span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 71 - span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 + start: 10443 + end: 10446 + - file_id: 0 span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] - span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 - file_id: 0 - namespace: 0 - pub_span: - start: 3259 - end: 3262 - name: - inner: 6 - span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 + start: 10776 + end: 10779 + - file_id: 0 span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3371 - end: 3375 - - file_id: 0 - span: - start: 3422 - end: 3426 - - file_id: 0 - span: - start: 3437 - end: 3441 - - file_id: 0 - span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 - file_id: 0 - namespace: 0 - pub_span: - start: 3955 - end: 3958 - name: - inner: 87 - span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 + start: 10788 + end: 10791 + - file_id: 0 span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] - span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 - span: - start: 4146 - end: 4150 - - file_id: 0 - span: - start: 4165 - end: 4169 - - file_id: 0 - span: - start: 4343 - end: 4347 - - file_id: 0 - span: - start: 4359 - end: 4363 - - file_id: 0 - span: - start: 4370 - end: 4374 - - file_id: 0 - span: - start: 4390 - end: 4394 - - file_id: 0 - span: - start: 4037 - end: 4041 - - file_id: 0 - span: - start: 4058 - end: 4062 - - file_id: 0 - span: - start: 4073 - end: 4077 - - file_id: 0 - span: - start: 4240 - end: 4244 - - file_id: 0 - span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 - span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 - file_id: 0 - - id: 53 - trait_index: 0 - type_params: [] - target: - inner: 10 - span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 - span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 - file_id: 0 - - id: 57 - trait_index: 1 - type_params: [] - target: - inner: 7 - span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 - span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 - file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 - span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 - type_params: [] - target: - inner: 13 - span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: - start: 0 - end: 3 - name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 - span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 - span: - start: 27 - end: 32 - const_value: - Int: 65536 - accesses: [] - attributes: [] - - id: 91 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: ~ - name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 - span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 - span: - start: 5836 - end: 5847 - const_value: - Int: 32 - accesses: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 - file_id: 0 span: - start: 5989 - end: 6004 + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 21 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 119 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_struct_in_type_position_resolves.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_struct_in_type_position_resolves.snap index bca56e2..9a67efd 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_struct_in_type_position_resolves.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_struct_in_type_position_resolves.snap @@ -29,217 +29,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 20 + - 20 + - 20 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 22 + - 22 + - 22 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 24 + - 24 + - 24 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 26 + - 26 + - 26 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 28 + - 28 + - 28 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 30 + - 30 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 32 + - 32 + - 32 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 34 + - 34 + - 34 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 36 + - 36 + - 36 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 38 + - 38 + - 38 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 40 + - 40 + - 40 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 42 + - 42 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 21 - mutable: false + memory: 45 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 21 + trait_index: 14 + assoc_name: 61 + base: 45 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 23 + trait_index: 12 + assoc_name: 62 + base: 47 - Function: signature: items: - - 21 - - 23 - - 26 + - 45 + - 47 + - 50 params_count: 2 - Function: signature: items: - - 21 - - 23 + - 45 + - 47 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 29 + trait_index: 12 + assoc_name: 62 + base: 53 - Function: signature: items: - - 20 - - 29 - - 30 + - 44 + - 53 + - 54 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 32 + trait_index: 14 + assoc_name: 61 + base: 56 - Function: signature: items: - - 32 - - 33 + - 56 + - 57 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 36 - memory: 35 - mutable: false + of: 60 + memory: 59 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 35 + trait_index: 14 + assoc_name: 61 + base: 59 - Function: signature: items: - - 37 - - 38 + - 61 + - 62 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 41 - memory: 40 - mutable: false + of: 65 + memory: 64 + ownership: Shared - Pointer: - to: 41 - memory: 40 - mutable: false + to: 65 + memory: 64 + ownership: Shared - Function: signature: items: - - 42 - - 43 + - 66 + - 67 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 46 - memory: 45 - mutable: false + to: 70 + memory: 69 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 45 + trait_index: 14 + assoc_name: 61 + base: 69 - Slice: - of: 46 - memory: 45 - mutable: false + of: 70 + memory: 69 + ownership: Shared - Function: signature: items: - - 47 - - 48 - - 49 + - 71 + - 72 + - 73 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 51 + trait_index: 14 + assoc_name: 61 + base: 75 - Function: signature: items: - - 52 + - 76 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 54 + trait_index: 14 + assoc_name: 61 + base: 78 - Function: signature: items: - - 55 + - 79 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 57 - mutable: true + memory: 81 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 57 + trait_index: 14 + assoc_name: 61 + base: 81 - Function: signature: items: - - 58 + - 82 - 6 - - 59 + - 83 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 62 - mutable: true + memory: 86 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 64 - mutable: false + memory: 88 + ownership: Shared - Function: signature: items: - - 63 - - 65 - - 61 + - 87 + - 89 + - 85 - 2 params_count: 3 - Function: @@ -272,6 +402,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -380,14 +564,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 90 + trait_index: 14 + assoc_name: 61 + base: 133 - TypeParam: owner: ImplBlock: 2 @@ -395,248 +650,263 @@ types: - Struct: struct_index: 0 args: - - 92 + - 135 - Function: signature: items: - - 93 + - 136 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 92 + trait_index: 14 + assoc_name: 61 + base: 135 - Function: signature: items: - - 95 - - 93 + - 138 + - 136 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 97 + trait_index: 15 + assoc_name: 57 + base: 140 - Pointer: - to: 97 - memory: 98 - mutable: true + to: 140 + memory: 141 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 100 - memory: 98 - mutable: true + to: 143 + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 100 - - 101 + - 142 + - 143 + - 144 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 98 + trait_index: 14 + assoc_name: 61 + base: 141 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 104 - memory: 98 - mutable: true + of: 147 + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 103 - - 105 + - 142 + - 146 + - 148 params_count: 2 - Struct: struct_index: 0 args: - - 98 + - 141 - Pointer: to: 6 - memory: 98 - mutable: true + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 107 - - 108 + - 142 + - 150 + - 151 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 111 - memory: 110 - mutable: false + to: 154 + memory: 153 + ownership: Shared - Function: signature: items: - - 112 + - 155 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 115 - memory: 114 - mutable: true + to: 158 + memory: 157 + ownership: Exclusive - Function: signature: items: - - 116 + - 159 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 119 - memory: 118 - mutable: false + to: 162 + memory: 161 + ownership: Shared - Function: signature: items: - - 120 + - 163 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 123 - memory: 122 - mutable: false + to: 166 + memory: 165 + ownership: Shared - Pointer: - to: 123 - memory: 122 - mutable: true + to: 166 + memory: 165 + ownership: Exclusive - Function: signature: items: - - 124 - - 125 + - 167 + - 168 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 128 - memory: 127 - mutable: false + to: 171 + memory: 170 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 127 + trait_index: 14 + assoc_name: 61 + base: 170 - Function: signature: items: - - 129 - - 130 - - 129 + - 172 + - 173 + - 172 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 133 - memory: 132 - mutable: false + to: 176 + memory: 175 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 132 + trait_index: 14 + assoc_name: 61 + base: 175 - Function: signature: items: - - 134 - - 135 - - 134 + - 177 + - 178 + - 177 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 138 - memory: 137 - mutable: true + to: 181 + memory: 180 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 137 + trait_index: 14 + assoc_name: 61 + base: 180 - Function: signature: items: - - 139 - - 140 - - 139 + - 182 + - 183 + - 182 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 143 - memory: 142 - mutable: true + to: 186 + memory: 185 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 142 + trait_index: 14 + assoc_name: 61 + base: 185 - Function: signature: items: - - 144 - - 145 - - 144 + - 187 + - 188 + - 187 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 190 + - Function: + signature: + items: + - 191 + - 191 + - 191 params_count: 2 - TypeParam: owner: @@ -647,28 +917,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 148 - memory: 147 - mutable: false + of: 194 + memory: 193 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 147 + trait_index: 14 + assoc_name: 61 + base: 193 - Function: signature: items: - - 149 - - 150 + - 195 + - 196 params_count: 1 - Pointer: - to: 148 - memory: 147 - mutable: false + to: 194 + memory: 193 + ownership: Shared - Function: signature: items: - - 149 - - 152 + - 195 + - 198 params_count: 1 - Function: signature: @@ -684,7 +954,7 @@ types: params_count: 1 - TypeParam: owner: - Struct: 106 + Struct: 402 param_index: 0 - Struct: struct_index: 1 @@ -693,6996 +963,23610 @@ types: - Function: signature: items: - - 157 + - 203 - 11 params_count: 1 - FunctionItem: - id: 1 - type_args: - - 1 + id: 58 + type_args: [] - FunctionItem: - id: 2 - type_args: - - 1 + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 + type_args: + - 1 + - FunctionItem: + id: 39 + type_args: + - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 161 + - 249 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 161 + - 249 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 164 + - 252 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 164 + - 252 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 100 + - 143 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 104 - memory: 98 - mutable: false + to: 147 + memory: 141 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 104 + - 147 - Slice: - of: 104 - memory: 98 - mutable: false + of: 147 + memory: 141 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 118 + trait_index: 14 + assoc_name: 61 + base: 161 - FunctionItem: - id: 6 + id: 43 type_args: - - 128 - - 127 + - 171 + - 170 - FunctionItem: - id: 6 + id: 43 type_args: - - 133 - - 132 + - 176 + - 175 - FunctionItem: - id: 6 + id: 43 type_args: - - 138 - - 137 + - 181 + - 180 - FunctionItem: - id: 6 + id: 43 type_args: - - 143 - - 142 + - 186 + - 185 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 147 - mutable: false + memory: 193 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 diagnostics: [] functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 31 + signature_index: 55 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 20 + inner: 44 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 29 + inner: 53 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 30 + inner: 54 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 34 + signature_index: 58 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 32 + inner: 56 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 33 + inner: 57 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 39 + signature_index: 63 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 37 + inner: 61 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 38 + inner: 62 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 44 + signature_index: 68 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 42 + inner: 66 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 43 + inner: 67 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 50 + signature_index: 74 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 47 + inner: 71 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 48 + inner: 72 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 49 + inner: 73 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 53 + signature_index: 77 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 52 + inner: 76 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 56 + signature_index: 80 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 55 + inner: 79 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 60 + signature_index: 84 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 58 + inner: 82 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 59 + inner: 83 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 61 + - - 61 + - Equals: 85 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 61 + - - 61 + - Equals: 85 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 63 + inner: 87 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 65 + inner: 89 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 61 + inner: 85 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 97 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 95 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 + span: + start: 3058 + end: 3059 + ty: + inner: 11 span: - start: 1813 - end: 1816 + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1863 - end: 1868 + start: 3103 + end: 3104 ty: - inner: 12 + inner: 13 + span: + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 span: - start: 1870 - end: 1873 + start: 3111 + end: 3112 + ty: + inner: 13 + span: + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 - result: - inner: 11 - span: - start: 1933 - end: 1936 - accesses: [] - attributes: - - Intrinsic - body: ~ - - id: 30 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: - start: 1952 - end: 1955 - type_params: [] - type_param_parent: ~ - inherited_type_param_count: 0 - signature_index: 81 - name: - inner: 56 - span: - start: 1959 - end: 1972 - params: + start: 3159 + end: 3162 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 1973 - end: 1978 + start: 3164 + end: 3165 ty: inner: 14 span: - start: 1980 - end: 1983 + start: 3167 + end: 3170 result: - inner: 10 + inner: 14 span: - start: 1988 - end: 1991 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 31 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 101 name: - inner: 57 + inner: 104 span: - start: 2014 - end: 2027 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3209 + end: 3210 + ty: + inner: 15 + span: + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 ty: inner: 15 span: - start: 2035 - end: 2038 + start: 3220 + end: 3223 result: - inner: 11 + inner: 15 span: - start: 2043 - end: 2046 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 32 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 98 name: - inner: 58 + inner: 105 span: - start: 2069 - end: 2082 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 span: - start: 2090 - end: 2093 + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 + span: + start: 3270 + end: 3271 + ty: + inner: 11 + span: + start: 3273 + end: 3276 result: - inner: 10 + inner: 11 span: - start: 2098 - end: 2101 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 33 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 99 name: - inner: 59 + inner: 106 span: - start: 2124 - end: 2137 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3315 + end: 3316 ty: - inner: 14 + inner: 13 span: - start: 2145 - end: 2148 + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 + span: + start: 3326 + end: 3329 result: inner: 13 span: - start: 2153 - end: 2156 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 34 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 100 name: - inner: 60 + inner: 107 span: - start: 2179 - end: 2192 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2200 - end: 2203 + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 result: - inner: 12 + inner: 14 span: - start: 2208 - end: 2211 - accesses: [] + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 35 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 101 name: - inner: 61 + inner: 108 span: - start: 2234 - end: 2247 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3421 + end: 3422 + ty: + inner: 15 + span: + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 span: - start: 2248 - end: 2253 + start: 3429 + end: 3430 ty: inner: 15 span: - start: 2255 - end: 2258 + start: 3432 + end: 3435 result: - inner: 13 + inner: 15 span: - start: 2263 - end: 2266 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 36 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 98 name: - inner: 62 + inner: 109 span: - start: 2289 - end: 2302 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 span: - start: 2310 - end: 2313 - result: - inner: 12 - span: - start: 2318 - end: 2321 - accesses: [] + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 + span: + start: 3482 + end: 3483 + ty: + inner: 11 + span: + start: 3485 + end: 3488 + result: + inner: 11 + span: + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 37 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 99 name: - inner: 63 + inner: 110 span: - start: 2344 - end: 2359 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3527 + end: 3528 ty: - inner: 14 + inner: 13 + span: + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 span: - start: 2367 - end: 2370 + start: 3535 + end: 3536 + ty: + inner: 13 + span: + start: 3538 + end: 3541 result: - inner: 15 + inner: 13 span: - start: 2375 - end: 2378 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 38 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 89 + signature_index: 100 name: - inner: 64 + inner: 111 span: - start: 2401 - end: 2415 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2416 - end: 2421 + start: 3580 + end: 3581 ty: - inner: 15 + inner: 14 + span: + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 span: - start: 2423 - end: 2426 + start: 3588 + end: 3589 + ty: + inner: 14 + span: + start: 3591 + end: 3594 result: inner: 14 span: - start: 2431 - end: 2434 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 80 + - id: 75 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3618 + end: 3621 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 113 + signature_index: 101 name: - inner: 93 + inner: 112 span: - start: 4588 - end: 4592 - params: [] + start: 3625 + end: 3632 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 + span: + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 + span: + start: 3641 + end: 3642 + ty: + inner: 15 + span: + start: 3644 + end: 3647 result: - inner: 112 + inner: 15 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 112 - expected_type: 112 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 112 - span: - start: 4632 - end: 4633 - ty: 112 + start: 3652 + end: 3655 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 12438 + end: 12445 + attributes: + - Intrinsic + body: ~ + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 117 + signature_index: 98 name: - inner: 94 + inner: 113 span: - start: 4671 - end: 4679 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 116 + inner: 11 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 116 - expected_type: 116 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 116 - span: - start: 4723 - end: 4724 - ty: 116 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 121 + signature_index: 102 name: - inner: 95 + inner: 114 span: - start: 4762 - end: 4769 + start: 3731 + end: 3738 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4786 - end: 4789 + start: 3739 + end: 3740 ty: - inner: 120 + inner: 10 span: - start: 4791 - end: 4798 - result: - inner: 16 - span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 120 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 173 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 173 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 + result: + inner: 10 + span: + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 + start: 3777 + end: 3780 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 115 + span: + start: 3784 + end: 3791 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: + start: 3792 + end: 3793 + ty: inner: 13 span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 + span: + start: 3800 + end: 3801 + ty: + inner: 13 + span: + start: 3803 + end: 3806 + result: + inner: 13 + span: + start: 3811 + end: 3814 + accesses: + - file_id: 0 + span: + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 126 + signature_index: 103 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 124 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 125 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 124 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 125 - expected_type: 125 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 125 - span: - start: 4936 - end: 4939 - ty: 125 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 + start: 3883 + end: 3886 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 117 + span: + start: 3890 + end: 3897 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 + start: 3898 + end: 3899 + ty: + inner: 14 span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3901 + end: 3904 + - mut_span: ~ + name: + inner: 101 + span: + start: 3906 + end: 3907 + ty: + inner: 14 + span: + start: 3909 + end: 3912 + result: + inner: 14 + span: + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 + attributes: + - Intrinsic + body: ~ + - id: 81 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 131 + signature_index: 101 name: - inner: 98 + inner: 118 span: - start: 4977 - end: 4980 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3951 + end: 3952 ty: - inner: 129 + inner: 15 span: - start: 5002 - end: 5009 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3959 + end: 3960 ty: - inner: 130 + inner: 15 span: - start: 5018 - end: 5027 + start: 3962 + end: 3965 result: - inner: 129 + inner: 15 span: - start: 5032 - end: 5039 - accesses: [] + start: 3970 + end: 3973 + accesses: + - file_id: 0 + span: + start: 12539 + end: 12546 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 130 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 129 - expected_type: 129 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 130 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 130 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 128 - - 127 - arguments: [] - ty: 130 - span: - start: 5078 - end: 5097 - ty: 130 - span: - start: 5070 - end: 5097 - ty: 129 - span: - start: 5051 - end: 5097 - ty: 129 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 - span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 - span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 3989 + end: 3992 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 136 + signature_index: 98 name: - inner: 99 + inner: 119 span: - start: 5136 - end: 5139 + start: 3996 + end: 4003 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 4004 + end: 4005 ty: - inner: 134 + inner: 11 span: - start: 5161 - end: 5168 + start: 4007 + end: 4010 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 4012 + end: 4013 ty: - inner: 135 + inner: 11 span: - start: 5177 - end: 5186 + start: 4015 + end: 4018 result: - inner: 134 + inner: 11 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 135 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 134 - expected_type: 134 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 135 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 135 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 133 - - 132 - arguments: [] - ty: 135 - span: - start: 5237 - end: 5256 - ty: 135 - span: - start: 5229 - end: 5256 - ty: 134 - span: - start: 5210 - end: 5256 - ty: 134 + start: 4023 + end: 4026 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 4042 + end: 4045 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 120 + span: + start: 4049 + end: 4056 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: - inner: 13 + start: 4057 + end: 4058 + ty: + inner: 10 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4060 + end: 4063 + - mut_span: ~ + name: + inner: 101 + span: + start: 4065 + end: 4066 + ty: + inner: 10 + span: + start: 4068 + end: 4071 + result: + inner: 10 + span: + start: 4076 + end: 4079 + accesses: + - file_id: 0 + span: + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 + attributes: + - Intrinsic + body: ~ + - id: 84 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4095 + end: 4098 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 141 + signature_index: 99 name: - inner: 100 + inner: 121 span: - start: 5295 - end: 5302 + start: 4102 + end: 4109 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4110 + end: 4111 ty: - inner: 139 + inner: 13 span: - start: 5324 - end: 5335 + start: 4113 + end: 4116 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4118 + end: 4119 ty: - inner: 140 + inner: 13 span: - start: 5344 - end: 5353 + start: 4121 + end: 4124 result: - inner: 139 + inner: 13 span: - start: 5358 - end: 5369 - accesses: [] + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 140 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 139 - expected_type: 139 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 140 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 140 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 138 - - 137 - arguments: [] - ty: 140 - span: - start: 5408 - end: 5427 - ty: 140 - span: - start: 5400 - end: 5427 - ty: 139 - span: - start: 5381 - end: 5427 - ty: 139 - span: - start: 5370 - end: 5439 - - id: 87 + - Intrinsic + body: ~ + - id: 85 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 - span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: - inner: 13 - span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 146 + signature_index: 103 name: - inner: 101 + inner: 122 span: - start: 5466 - end: 5473 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4163 + end: 4164 ty: - inner: 144 + inner: 12 span: - start: 5495 - end: 5506 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4171 + end: 4172 ty: - inner: 145 + inner: 12 span: - start: 5515 - end: 5524 + start: 4174 + end: 4177 result: - inner: 144 + inner: 12 span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 145 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 144 - expected_type: 144 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 145 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 145 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 143 - - 142 - arguments: [] - ty: 145 - span: - start: 5579 - end: 5598 - ty: 145 - span: - start: 5571 - end: 5598 - ty: 144 - span: - start: 5552 - end: 5598 - ty: 144 + start: 4182 + end: 4185 + accesses: + - file_id: 0 span: - start: 5541 - end: 5610 - - id: 107 - file_id: 1 - namespace: ~ + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 + file_id: 0 + namespace: 0 parent: ~ - pub_span: ~ + pub_span: + start: 4201 + end: 4204 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 158 + signature_index: 98 name: - inner: 118 + inner: 123 span: - start: 46 - end: 49 + start: 4208 + end: 4218 params: - mut_span: ~ name: - inner: 119 + inner: 100 span: - start: 50 - end: 51 + start: 4219 + end: 4220 + ty: + inner: 11 + span: + start: 4222 + end: 4225 + - mut_span: ~ + name: + inner: 101 + span: + start: 4227 + end: 4228 ty: - inner: 157 + inner: 11 span: - start: 53 - end: 65 + start: 4230 + end: 4233 result: inner: 11 span: - start: 70 - end: 73 + start: 4238 + end: 4241 accesses: - - file_id: 1 + - file_id: 0 span: - start: 95 - end: 98 - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 74 - end: 85 - locals: - - name: - inner: 119 - span: - start: 50 - end: 51 - ty: 157 - mut_span: ~ - accesses: - - span: - start: 76 - end: 77 - kind: Read - inferred_type: 11 - expected_type: 11 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - FieldAccess: - object: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 157 - span: - start: 76 - end: 77 - field: - inner: 31 - span: - start: 78 - end: 83 - ty: 11 - span: - start: 76 - end: 83 - ty: 11 + start: 6924 + end: 6934 + - file_id: 0 span: - start: 74 - end: 85 - - id: 68 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4257 + end: 4260 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 79 + inner: 124 span: - start: 3404 - end: 3408 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4275 + end: 4276 ty: - inner: 21 + inner: 13 span: - start: 3409 - end: 3413 + start: 4278 + end: 4281 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4283 + end: 4284 ty: - inner: 23 + inner: 13 span: - start: 3422 - end: 3432 + start: 4286 + end: 4289 result: - inner: 26 + inner: 13 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 21 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 23 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 26 - expected_type: 26 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 21 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 21 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 23 - span: - start: 3484 - end: 3489 - ty: 26 - span: - start: 3466 - end: 3490 - ty: 26 + start: 4294 + end: 4297 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 9522 + end: 9532 + - file_id: 0 + span: + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4313 + end: 4316 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 28 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 81 + inner: 125 span: - start: 3519 - end: 3523 + start: 4320 + end: 4329 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4330 + end: 4331 ty: - inner: 21 + inner: 11 span: - start: 3524 - end: 3528 - result: - inner: 23 - span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 21 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 23 - expected_type: 23 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 21 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 21 - span: - start: 3566 - end: 3570 - ty: 23 - span: - start: 3554 - end: 3571 - ty: 23 - span: - start: 3544 - end: 3577 - - id: 72 - file_id: 0 - namespace: 0 - parent: - GenericImpl: 2 - pub_span: - start: 3718 - end: 3721 - type_params: - - name: - inner: 13 + start: 4333 + end: 4336 + - mut_span: ~ + name: + inner: 101 span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 94 - name: - inner: 84 - span: - start: 3725 - end: 3727 - params: [] + start: 4338 + end: 4339 + ty: + inner: 11 + span: + start: 4341 + end: 4344 result: - inner: 93 + inner: 11 span: - start: 3736 - end: 3740 + start: 4349 + end: 4352 accesses: - file_id: 0 span: - start: 4226 - end: 4228 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 93 - expected_type: 93 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 161 - - 92 - arguments: [] - ty: 95 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 161 - - 92 - arguments: [] - ty: 95 - span: - start: 3788 - end: 3803 - ty: 93 - span: - start: 3751 - end: 3805 - ty: 93 + start: 7032 + end: 7041 + - file_id: 0 span: - start: 3741 - end: 3811 - - id: 73 + start: 8300 + end: 8309 + - file_id: 0 + span: + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 + attributes: + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 96 + start: 4368 + end: 4371 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 85 + inner: 126 span: - start: 3838 - end: 3843 + start: 4375 + end: 4384 params: - mut_span: ~ name: - inner: 86 + inner: 100 span: - start: 3847 - end: 3852 + start: 4385 + end: 4386 ty: - inner: 95 + inner: 13 span: - start: 3854 - end: 3863 - result: - inner: 93 - span: - start: 3868 - end: 3872 - accesses: - - file_id: 0 - span: - start: 4470 - end: 4475 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 95 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 93 - expected_type: 93 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 164 - - 92 - arguments: [] - ty: 95 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 95 - span: - start: 3938 - end: 3943 - ty: 95 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 164 - - 92 - arguments: [] - ty: 95 - span: - start: 3898 - end: 3913 - ty: 93 - span: - start: 3883 - end: 3945 - ty: 93 + start: 4388 + end: 4391 + - mut_span: ~ + name: + inner: 101 + span: + start: 4393 + end: 4394 + ty: + inner: 13 + span: + start: 4396 + end: 4399 + result: + inner: 13 + span: + start: 4404 + end: 4407 + accesses: + - file_id: 0 span: - start: 3873 - end: 3951 - - id: 76 + start: 9630 + end: 9639 + - file_id: 0 + span: + start: 10898 + end: 10907 + attributes: + - Intrinsic + body: ~ + - id: 90 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4423 + end: 4426 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 109 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 88 + inner: 127 span: - start: 4007 - end: 4014 + start: 4430 + end: 4440 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4441 + end: 4442 ty: - inner: 99 + inner: 11 span: - start: 4021 - end: 4041 + start: 4444 + end: 4447 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4449 + end: 4450 ty: - inner: 107 + inner: 11 span: - start: 4051 - end: 4068 + start: 4452 + end: 4455 result: - inner: 108 + inner: 11 span: - start: 4073 - end: 4091 + start: 4460 + end: 4463 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 7141 + end: 7151 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 91 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 102 + parent: ~ + pub_span: + start: 4479 + end: 4482 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 90 + inner: 128 span: - start: 4115 - end: 4120 + start: 4486 + end: 4496 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4497 + end: 4498 ty: - inner: 99 + inner: 13 span: - start: 4130 - end: 4150 + start: 4500 + end: 4503 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4505 + end: 4506 ty: - inner: 100 + inner: 13 span: - start: 4159 - end: 4160 + start: 4508 + end: 4511 result: - inner: 101 + inner: 13 span: - start: 4165 - end: 4182 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 101 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 101 - expected_type: 101 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 97 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 99 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 98 - - 100 - arguments: [] - ty: 107 - span: - start: 4218 - end: 4235 - ty: 101 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 101 - span: - start: 4267 - end: 4270 - ty: 100 - memory: 98 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 100 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 101 - span: - start: 4290 - end: 4293 - ty: 101 + start: 4516 + end: 4519 + accesses: + - file_id: 0 span: - start: 4183 - end: 4299 - - id: 78 + start: 9739 + end: 9749 + - file_id: 0 + span: + start: 11040 + end: 11050 + attributes: + - Intrinsic + body: ~ + - id: 92 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 + parent: ~ + pub_span: + start: 4535 + end: 4538 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 129 + span: + start: 4542 + end: 4549 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 106 - name: - inner: 92 - span: - start: 4322 - end: 4333 - params: - - mut_span: ~ - name: - inner: 80 - span: - start: 4337 - end: 4341 + start: 4550 + end: 4551 ty: - inner: 99 + inner: 11 span: - start: 4343 - end: 4363 + start: 4553 + end: 4556 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4558 + end: 4559 ty: - inner: 103 + inner: 11 span: - start: 4370 - end: 4385 + start: 4561 + end: 4564 result: - inner: 105 + inner: 11 span: - start: 4390 - end: 4408 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 103 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 105 - expected_type: 105 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 98 - - 104 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 97 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 99 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 98 - - 104 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 103 - span: - start: 4481 - end: 4484 - ty: 107 - span: - start: 4462 - end: 4485 - ty: 170 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 103 - span: - start: 4517 - end: 4520 - ty: 105 - span: - start: 4419 - end: 4531 - ty: 105 + start: 4569 + end: 4572 + accesses: + - file_id: 0 span: - start: 4409 - end: 4542 - - id: 88 + start: 7245 + end: 7252 + - file_id: 0 + span: + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic + body: ~ + - id: 93 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4588 + end: 4591 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 151 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 18 + inner: 130 span: - start: 5671 - end: 5674 + start: 4595 + end: 4602 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4603 + end: 4604 + ty: + inner: 13 + span: + start: 4606 + end: 4609 + - mut_span: ~ + name: + inner: 101 span: - start: 5675 - end: 5679 + start: 4611 + end: 4612 ty: - inner: 149 + inner: 13 span: - start: 5675 - end: 5679 + start: 4614 + end: 4617 result: - inner: 150 + inner: 13 span: - start: 5684 - end: 5693 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 149 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 150 - expected_type: 150 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 147 - - 148 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 149 - span: - start: 5714 - end: 5718 - ty: 150 - span: - start: 5704 - end: 5719 - ty: 150 + start: 4622 + end: 4625 + accesses: + - file_id: 0 span: - start: 5694 - end: 5725 - - id: 89 + start: 9843 + end: 9850 + - file_id: 0 + span: + start: 11177 + end: 11184 + attributes: + - Intrinsic + body: ~ + - id: 94 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5745 - end: 5748 + start: 4641 + end: 4644 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 153 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 91 + inner: 131 span: - start: 5752 - end: 5755 + start: 4648 + end: 4655 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4656 + end: 4657 + ty: + inner: 11 + span: + start: 4659 + end: 4662 + - mut_span: ~ + name: + inner: 101 span: - start: 5756 - end: 5760 + start: 4664 + end: 4665 ty: - inner: 149 + inner: 11 span: - start: 5756 - end: 5760 + start: 4667 + end: 4670 result: - inner: 152 + inner: 11 span: - start: 5765 - end: 5772 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 149 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 152 - expected_type: 152 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 147 - - 148 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 149 - span: - start: 5793 - end: 5797 - ty: 152 - span: - start: 5783 - end: 5798 - ty: 152 + start: 4675 + end: 4678 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 + attributes: + - Intrinsic + body: ~ + - id: 95 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4694 + end: 4697 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 102 name: - inner: 104 + inner: 132 span: - start: 5887 - end: 5905 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 5906 - end: 5910 + start: 4709 + end: 4710 ty: - inner: 17 + inner: 10 span: - start: 5906 - end: 5910 + start: 4712 + end: 4715 + - mut_span: ~ + name: + inner: 101 + span: + start: 4717 + end: 4718 + ty: + inner: 10 + span: + start: 4720 + end: 4723 result: - inner: 17 + inner: 10 span: - start: 5915 - end: 5919 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 + start: 4728 + end: 4731 + accesses: + - file_id: 0 span: - start: 5920 - end: 6063 - - id: 93 + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 + attributes: + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 4747 + end: 4750 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 99 name: - inner: 106 + inner: 133 span: - start: 6090 - end: 6108 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6109 - end: 6113 + start: 4762 + end: 4763 ty: - inner: 17 + inner: 13 + span: + start: 4765 + end: 4768 + - mut_span: ~ + name: + inner: 101 + span: + start: 4770 + end: 4771 + ty: + inner: 13 span: - start: 6109 - end: 6113 + start: 4773 + end: 4776 result: - inner: 17 + inner: 13 span: - start: 6118 - end: 6122 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 + start: 4781 + end: 4784 + accesses: + - file_id: 0 span: - start: 6123 - end: 6266 - - id: 94 + start: 9944 + end: 9951 + attributes: + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 103 name: - inner: 108 + inner: 134 span: - start: 6293 - end: 6301 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6302 - end: 6306 + start: 4815 + end: 4816 ty: - inner: 17 + inner: 12 + span: + start: 4818 + end: 4821 + - mut_span: ~ + name: + inner: 101 + span: + start: 4823 + end: 4824 + ty: + inner: 12 span: - start: 6302 - end: 6306 + start: 4826 + end: 4829 result: - inner: 16 + inner: 12 span: - start: 6311 - end: 6315 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 + start: 4834 + end: 4837 + accesses: + - file_id: 0 span: - start: 6316 - end: 6353 - - id: 95 + start: 11303 + end: 11310 + attributes: + - Intrinsic + body: ~ + - id: 98 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 4853 + end: 4856 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 96 name: - inner: 107 + inner: 135 span: - start: 6380 - end: 6398 + start: 4860 + end: 4870 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 4871 + end: 4876 ty: - inner: 17 + inner: 11 span: - start: 6399 - end: 6403 + start: 4878 + end: 4881 result: - inner: 16 + inner: 11 span: - start: 6408 - end: 6412 + start: 4886 + end: 4889 accesses: - file_id: 0 span: - start: 6141 - end: 6159 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 + start: 7442 + end: 7452 + - file_id: 0 span: - start: 6413 - end: 6455 - - id: 96 + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 + attributes: + - Intrinsic + body: ~ + - id: 99 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 4905 + end: 4908 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 97 name: - inner: 105 + inner: 136 span: - start: 6482 - end: 6500 + start: 4912 + end: 4922 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 4923 + end: 4928 ty: - inner: 17 + inner: 13 span: - start: 6501 - end: 6505 + start: 4930 + end: 4933 result: - inner: 16 + inner: 13 span: - start: 6510 - end: 6514 + start: 4938 + end: 4941 accesses: - file_id: 0 span: - start: 5938 - end: 5956 + start: 10040 + end: 10050 + - file_id: 0 + span: + start: 11407 + end: 11417 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 - span: - start: 6515 - end: 6557 - - id: 97 + - Intrinsic + body: ~ + - id: 100 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 4957 + end: 4960 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 104 name: - inner: 109 + inner: 137 span: - start: 6584 - end: 6603 + start: 4964 + end: 4979 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 4980 + end: 4985 ty: - inner: 17 + inner: 11 span: - start: 6604 - end: 6608 + start: 4987 + end: 4990 result: - inner: 16 + inner: 14 span: - start: 6613 - end: 6617 + start: 4995 + end: 4998 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 105 name: - inner: 110 + inner: 138 span: - start: 6720 - end: 6734 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6735 - end: 6739 + start: 5044 + end: 5047 result: - inner: 16 + inner: 14 span: - start: 6744 - end: 6748 + start: 5052 + end: 5055 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 106 name: - inner: 111 + inner: 139 span: - start: 6818 - end: 6839 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6840 - end: 6844 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6849 - end: 6853 + start: 5109 + end: 5112 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 107 name: - inner: 112 + inner: 140 span: - start: 7011 - end: 7030 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 7031 - end: 7035 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 7040 - end: 7044 + start: 5166 + end: 5169 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 108 name: - inner: 113 + inner: 141 span: - start: 7213 - end: 7229 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 7230 - end: 7234 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 7239 - end: 7243 + start: 5223 + end: 5226 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 109 name: - inner: 114 + inner: 142 span: - start: 7326 - end: 7343 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 7344 - end: 7348 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 7353 - end: 7357 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 110 name: - inner: 115 + inner: 143 span: - start: 7515 - end: 7535 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 7536 - end: 7540 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 7545 - end: 7549 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7687 - end: 7688 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 - span: - start: 7560 - end: 7674 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 - span: - start: 7690 - end: 7716 - ty: 16 - span: - start: 7560 - end: 7717 - ty: 16 - span: - start: 7550 - end: 7723 - - id: 104 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7743 - end: 7746 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 111 name: - inner: 116 + inner: 144 span: - start: 7750 - end: 7766 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7767 - end: 7771 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 7767 - end: 7771 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 7776 - end: 7780 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline + - Intrinsic + body: ~ + - id: 108 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5413 + end: 5416 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 112 + name: + inner: 145 + span: + start: 5420 + end: 5433 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5434 + end: 5439 + ty: + inner: 14 + span: + start: 5441 + end: 5444 + result: + inner: 11 + span: + start: 5449 + end: 5452 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 109 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5468 + end: 5471 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 113 + name: + inner: 146 + span: + start: 5475 + end: 5488 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5489 + end: 5494 + ty: + inner: 14 + span: + start: 5496 + end: 5499 + result: + inner: 10 + span: + start: 5504 + end: 5507 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 110 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5523 + end: 5526 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 114 + name: + inner: 147 + span: + start: 5530 + end: 5543 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5544 + end: 5549 + ty: + inner: 15 + span: + start: 5551 + end: 5554 + result: + inner: 11 + span: + start: 5559 + end: 5562 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 111 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5578 + end: 5581 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 + name: + inner: 148 + span: + start: 5585 + end: 5598 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5599 + end: 5604 + ty: + inner: 15 + span: + start: 5606 + end: 5609 + result: + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 + name: + inner: 149 + span: + start: 5640 + end: 5653 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5654 + end: 5659 + ty: + inner: 14 + span: + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 113 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 + name: + inner: 150 + span: + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 + name: + inner: 151 + span: + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5764 + end: 5769 + ty: + inner: 15 + span: + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 152 + span: + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5819 + end: 5824 + ty: + inner: 15 + span: + start: 5826 + end: 5829 + result: + inner: 12 + span: + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 153 + span: + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 + span: + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 154 + span: + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 + span: + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 156 + name: + inner: 178 + span: + start: 21343 + end: 21347 + params: [] + result: + inner: 155 + span: + start: 21369 + end: 21376 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21377 + end: 21399 + locals: [] + inferred_type: 155 + expected_type: 155 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 155 + span: + start: 21387 + end: 21388 + ty: 155 + span: + start: 21377 + end: 21399 + - id: 376 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 160 + name: + inner: 179 + span: + start: 21426 + end: 21434 + params: [] + result: + inner: 159 + span: + start: 21456 + end: 21463 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21464 + end: 21486 + locals: [] + inferred_type: 159 + expected_type: 159 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 159 + span: + start: 21474 + end: 21475 + ty: 159 + span: + start: 21464 + end: 21486 + - id: 377 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 164 + name: + inner: 180 + span: + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: + inner: 163 + span: + start: 21542 + end: 21549 + result: + inner: 16 + span: + start: 21554 + end: 21558 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21559 + end: 21596 + locals: + - name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: 163 + mut_span: ~ + accesses: + - span: + start: 21569 + end: 21572 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Eq + span: + start: 21586 + end: 21588 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 261 + span: + start: 21569 + end: 21572 + right: + kind: + Int: + value: 0 + ty: 261 + span: + start: 21589 + end: 21590 + ty: 16 + span: + start: 21569 + end: 21590 + ty: 16 + span: + start: 21559 + end: 21596 + - id: 378 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 169 + name: + inner: 181 + span: + start: 21623 + end: 21631 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: + inner: 167 + span: + start: 21653 + end: 21660 + result: + inner: 168 + span: + start: 21665 + end: 21672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21673 + end: 21697 + locals: + - name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: 167 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 168 + expected_type: 168 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 168 + span: + start: 21683 + end: 21686 + ty: 168 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 174 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 172 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 173 + span: + start: 21765 + end: 21774 + result: + inner: 172 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 172 + mut_span: ~ + accesses: + - span: + start: 21798 + end: 21801 + kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 173 + mut_span: ~ + accesses: + - span: + start: 21817 + end: 21822 + kind: Read + inferred_type: 172 + expected_type: 172 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 21815 + end: 21816 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 173 + span: + start: 21798 + end: 21801 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21823 + end: 21824 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 173 + span: + start: 21817 + end: 21822 + right: + kind: + GenericCall: + id: 43 + type_args: + - 171 + - 170 + arguments: [] + ty: 173 + span: + start: 21825 + end: 21844 + ty: 173 + span: + start: 21817 + end: 21844 + ty: 172 + span: + start: 21798 + end: 21844 + ty: 172 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 179 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 177 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 178 + span: + start: 21924 + end: 21933 + result: + inner: 177 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 178 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 177 + expected_type: 177 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 178 + span: + start: 21957 + end: 21960 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21982 + end: 21983 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 178 + span: + start: 21976 + end: 21981 + right: + kind: + GenericCall: + id: 43 + type_args: + - 176 + - 175 + arguments: [] + ty: 178 + span: + start: 21984 + end: 22003 + ty: 178 + span: + start: 21976 + end: 22003 + ty: 177 + span: + start: 21957 + end: 22003 + ty: 177 + span: + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22035 + end: 22038 + type_params: + - name: + inner: 57 + span: + start: 22050 + end: 22053 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22055 + end: 22061 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22071 + end: 22074 + - file_id: 0 + span: + start: 22087 + end: 22090 + - file_id: 0 + span: + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 + span: + start: 22160 + end: 22163 + - name: + inner: 65 + span: + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22077 + end: 22078 + - file_id: 0 + span: + start: 22107 + end: 22108 + - file_id: 0 + span: + start: 22157 + end: 22158 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 184 + name: + inner: 182 + span: + start: 22042 + end: 22049 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: + inner: 182 + span: + start: 22071 + end: 22078 + - mut_span: ~ + name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: + inner: 183 + span: + start: 22087 + end: 22096 + result: + inner: 182 + span: + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 183 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 182 + expected_type: 182 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 183 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 183 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 181 + - 180 + arguments: [] + ty: 183 + span: + start: 22147 + end: 22166 + ty: 183 + span: + start: 22139 + end: 22166 + ty: 182 + span: + start: 22120 + end: 22166 + ty: 182 + span: + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 + span: + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 + span: + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 189 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: + inner: 187 + span: + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: + inner: 188 + span: + start: 22250 + end: 22259 + result: + inner: 187 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 188 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 187 + expected_type: 187 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 188 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 188 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 186 + - 185 + arguments: [] + ty: 188 + span: + start: 22310 + end: 22329 + ty: 188 + span: + start: 22302 + end: 22329 + ty: 187 + span: + start: 22283 + end: 22329 + ty: 187 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 + span: + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 192 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: + inner: 191 + span: + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: + inner: 191 + span: + start: 22414 + end: 22423 + result: + inner: 191 + span: + start: 22428 + end: 22437 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 191 + expected_type: 191 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 191 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 191 + span: + start: 22469 + end: 22470 + ty: 191 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 191 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 191 + span: + start: 22503 + end: 22507 + ty: 191 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 191 + span: + start: 22512 + end: 22516 + ty: 191 + span: + start: 22511 + end: 22516 + ty: 191 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 191 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 191 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 191 + span: + start: 22567 + end: 22573 + ty: 191 + span: + start: 22438 + end: 22579 + - id: 403 + file_id: 1 + namespace: ~ + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 204 + name: + inner: 203 + span: + start: 46 + end: 49 + params: + - mut_span: ~ + name: + inner: 204 + span: + start: 50 + end: 51 + ty: + inner: 203 + span: + start: 53 + end: 65 + result: + inner: 11 + span: + start: 70 + end: 73 + accesses: + - file_id: 1 + span: + start: 95 + end: 98 + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 74 + end: 85 + locals: + - name: + inner: 204 + span: + start: 50 + end: 51 + ty: 203 + mut_span: ~ + accesses: + - span: + start: 76 + end: 77 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + FieldAccess: + object: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 203 + span: + start: 76 + end: 77 + field: + inner: 82 + span: + start: 78 + end: 83 + ty: 11 + span: + start: 76 + end: 83 + ty: 11 + span: + start: 74 + end: 85 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 21 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 20 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 20 + span: + start: 425 + end: 429 + result: + inner: 20 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 23 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 22 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 22 + span: + start: 502 + end: 506 + result: + inner: 22 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 25 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 24 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 24 + span: + start: 579 + end: 583 + result: + inner: 24 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 27 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 26 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 26 + span: + start: 656 + end: 660 + result: + inner: 26 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 29 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 28 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 28 + span: + start: 733 + end: 737 + result: + inner: 28 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 31 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 30 + span: + start: 799 + end: 803 + result: + inner: 30 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 33 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 32 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 32 + span: + start: 885 + end: 889 + result: + inner: 32 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 35 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 34 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 34 + span: + start: 968 + end: 972 + result: + inner: 34 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 37 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 36 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 36 + span: + start: 1054 + end: 1058 + result: + inner: 36 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 39 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 38 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 38 + span: + start: 1131 + end: 1135 + result: + inner: 38 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 41 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 40 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 40 + span: + start: 1208 + end: 1212 + result: + inner: 40 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 43 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 42 + span: + start: 1283 + end: 1287 + result: + inner: 42 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 45 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 47 + span: + start: 20204 + end: 20214 + result: + inner: 50 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 45 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 47 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 50 + expected_type: 50 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 45 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 45 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 47 + span: + start: 20266 + end: 20271 + ty: 50 + span: + start: 20248 + end: 20272 + ty: 50 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 52 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 45 + span: + start: 20306 + end: 20310 + result: + inner: 47 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 45 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 47 + expected_type: 47 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 45 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 45 + span: + start: 20348 + end: 20352 + ty: 47 + span: + start: 20336 + end: 20353 + ty: 47 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 205 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 206 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 210 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 211 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 212 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 217 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 219 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 220 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 221 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 222 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 223 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 224 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 225 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 226 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 227 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 228 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 229 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 230 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 231 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 232 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 233 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 222 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 223 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 224 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 234 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 235 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 228 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 229 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 230 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 231 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 236 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 233 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 237 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 238 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 239 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 240 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 241 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 242 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 243 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 244 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 245 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 246 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 210 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 211 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 212 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 217 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 219 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 220 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 221 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 210 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 211 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 212 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 217 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 219 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 220 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 221 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 137 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 136 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 136 + expected_type: 136 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 249 + - 135 + arguments: [] + ty: 138 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 249 + - 135 + arguments: [] + ty: 138 + span: + start: 20570 + end: 20585 + ty: 136 + span: + start: 20533 + end: 20587 + ty: 136 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 139 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 138 + span: + start: 20636 + end: 20645 + result: + inner: 136 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 138 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 136 + expected_type: 136 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 252 + - 135 + arguments: [] + ty: 138 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 138 + span: + start: 20720 + end: 20725 + ty: 138 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 252 + - 135 + arguments: [] + ty: 138 + span: + start: 20680 + end: 20695 + ty: 136 + span: + start: 20665 + end: 20727 + ty: 136 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 152 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 142 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 150 + span: + start: 20829 + end: 20846 + result: + inner: 151 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 145 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 142 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 143 + span: + start: 20929 + end: 20930 + result: + inner: 144 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 144 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 144 + expected_type: 144 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 140 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 142 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 141 + - 143 + arguments: [] + ty: 150 + span: + start: 20984 + end: 21001 + ty: 144 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 144 + span: + start: 21029 + end: 21032 + ty: 143 + memory: 141 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 143 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 144 + span: + start: 21052 + end: 21055 + ty: 144 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 149 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 142 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 146 + span: + start: 21128 + end: 21143 + result: + inner: 148 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 146 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 148 + expected_type: 148 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 141 + - 147 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 140 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 142 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 141 + - 147 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 146 + span: + start: 21236 + end: 21239 + ty: 150 + span: + start: 21217 + end: 21240 + ty: 258 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 146 + span: + start: 21272 + end: 21275 + ty: 148 + span: + start: 21174 + end: 21286 + ty: 148 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 197 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 195 + span: + start: 22645 + end: 22649 + result: + inner: 196 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 195 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 196 + expected_type: 196 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 193 + - 194 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 195 + span: + start: 22684 + end: 22688 + ty: 196 + span: + start: 22674 + end: 22689 + ty: 196 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 199 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 195 + span: + start: 22726 + end: 22730 + result: + inner: 198 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 195 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 198 + expected_type: 198 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 193 + - 194 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 195 + span: + start: 22763 + end: 22767 + ty: 198 + span: + start: 22753 + end: 22768 + ty: 198 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline body: stack: labels: [] @@ -7691,1221 +24575,5633 @@ functions: label: ~ parent: ~ span: - start: 7781 - end: 7823 - locals: - - name: - inner: 80 - span: - start: 7767 - end: 7771 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7791 - end: 7795 - kind: Read - - span: - start: 7806 - end: 7810 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 7803 - end: 7805 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7796 - end: 7798 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7791 - end: 7795 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7799 - end: 7802 - ty: 16 - span: - start: 7791 - end: 7802 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7811 - end: 7813 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7806 - end: 7810 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7814 - end: 7817 - ty: 16 - span: - start: 7806 - end: 7817 - ty: 16 - span: - start: 7791 - end: 7817 - ty: 16 + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 24773 + end: 24775 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24766 + end: 24768 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24761 + end: 24765 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24769 + end: 24772 + ty: 16 + span: + start: 24761 + end: 24772 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24781 + end: 24783 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24776 + end: 24780 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24784 + end: 24787 + ty: 16 + span: + start: 24776 + end: 24787 + ty: 16 + span: + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: + trait_index: 0 + ? - Type + - 23 + : Trait: + trait_index: 1 + ? - Type + - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 + : TypeSet: + typeset_index: 1 + ? - Type + - 158 + : TypeSet: + typeset_index: 0 + ? - Type + - 159 + : Trait: + trait_index: 12 + ? - Type + - 160 + : Trait: + trait_index: 13 + ? - Type + - 161 + : TraitAssocType: + trait_index: 13 + assoc_name: 161 + ? - Type + - 167 + : Struct: + struct_index: 0 + ? - Type + - 172 + : Trait: + trait_index: 15 + ? - Type + - 176 + : Module: + namespace_idx: 1 + ? - Value + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 + ? - Value + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 + : Function: + func_index: 26 + ? - Value + - 102 + : Function: + func_index: 27 + ? - Value + - 103 + : Function: + func_index: 28 + ? - Value + - 104 + : Function: + func_index: 29 + ? - Value + - 105 + : Function: + func_index: 30 + ? - Value + - 106 + : Function: + func_index: 31 + ? - Value + - 107 + : Function: + func_index: 32 + ? - Value + - 108 + : Function: + func_index: 33 + ? - Value + - 109 + : Function: + func_index: 34 + ? - Value + - 110 + : Function: + func_index: 35 + ? - Value + - 111 + : Function: + func_index: 36 + ? - Value + - 112 + : Function: + func_index: 37 + ? - Value + - 113 + : Function: + func_index: 38 + ? - Value + - 114 + : Function: + func_index: 39 + ? - Value + - 115 + : Function: + func_index: 40 + ? - Value + - 116 + : Function: + func_index: 41 + ? - Value + - 117 + : Function: + func_index: 42 + ? - Value + - 118 + : Function: + func_index: 43 + ? - Value + - 119 + : Function: + func_index: 44 + ? - Value + - 120 + : Function: + func_index: 45 + ? - Value + - 121 + : Function: + func_index: 46 + ? - Value + - 122 + : Function: + func_index: 47 + ? - Value + - 123 + : Function: + func_index: 48 + ? - Value + - 124 + : Function: + func_index: 49 + ? - Value + - 125 + : Function: + func_index: 50 + ? - Value + - 126 + : Function: + func_index: 51 + ? - Value + - 127 + : Function: + func_index: 52 + ? - Value + - 128 + : Function: + func_index: 53 + ? - Value + - 129 + : Function: + func_index: 54 + ? - Value + - 130 + : Function: + func_index: 55 + ? - Value + - 131 + : Function: + func_index: 56 + ? - Value + - 132 + : Function: + func_index: 57 + ? - Value + - 133 + : Function: + func_index: 58 + ? - Value + - 134 + : Function: + func_index: 59 + ? - Value + - 135 + : Function: + func_index: 60 + ? - Value + - 136 + : Function: + func_index: 61 + ? - Value + - 137 + : Function: + func_index: 62 + ? - Value + - 138 + : Function: + func_index: 63 + ? - Value + - 139 + : Function: + func_index: 64 + ? - Value + - 140 + : Function: + func_index: 65 + ? - Value + - 141 + : Function: + func_index: 66 + ? - Value + - 142 + : Function: + func_index: 67 + ? - Value + - 143 + : Function: + func_index: 68 + ? - Value + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 + : Const: + const_index: 1 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: [] +enums: [] +exports: + 203: + Function: + internal_name: + inner: 203 + span: + start: 95 + end: 98 + external_name: ~ + id: 403 +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 134 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 134 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 + - id: 402 + file_id: 1 + namespace: ~ + pub_span: ~ + name: + inner: 202 + span: + start: 19 + end: 26 + type_params: + - name: + inner: 65 + span: + start: 27 + end: 28 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 1 + span: + start: 39 + end: 40 + attributes: [] + fields: + - name: + inner: 82 + span: + start: 32 + end: 37 + ty: + inner: 202 + span: + start: 39 + end: 40 + pub_span: ~ + accesses: + - kind: Read + file_id: 1 + span: + start: 78 + end: 83 + lookup: + 82: 0 + accesses: + - file_id: 1 + span: + start: 53 + end: 60 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 46 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 205 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 span: - start: 7781 - end: 7823 -globals: [] -memories: [] -namespaces: - - name: 0 - parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: - trait_index: 0 - assoc_name: 10 - ? - Type - - 26 - : TypeSet: - typeset_index: 1 - ? - Type - - 66 - : TypeSet: - typeset_index: 0 - ? - Type - - 70 - : Trait: - trait_index: 0 - ? - Type - - 71 - : Trait: - trait_index: 1 - ? - Type - - 72 - : TraitAssocType: - trait_index: 1 - assoc_name: 72 - ? - Type - - 82 - : Struct: - struct_index: 0 - ? - Type - - 87 - : Trait: - trait_index: 3 - ? - Type - - 91 - : Module: - namespace_idx: 1 - ? - Value - - 1 - : Const: - const_index: 0 - ? - Value - - 4 - : Function: - func_index: 0 - ? - Value - - 11 - : Function: - func_index: 1 - ? - Value - - 12 - : Function: - func_index: 2 - ? - Value - - 15 - : Function: - func_index: 3 - ? - Value - - 16 - : Function: - func_index: 4 - ? - Value - - 19 - : Function: - func_index: 5 - ? - Value - - 20 - : Function: - func_index: 6 - ? - Value - - 21 - : Function: - func_index: 7 - ? - Value - - 25 - : Function: - func_index: 8 - ? - Value - - 30 - : Function: - func_index: 9 - ? - Value - - 34 - : Function: - func_index: 10 - ? - Value - - 36 - : Function: - func_index: 11 - ? - Value - - 37 - : Function: - func_index: 12 - ? - Value - - 39 - : Function: - func_index: 13 - ? - Value - - 41 - : Function: - func_index: 14 - ? - Value - - 42 - : Function: - func_index: 15 - ? - Value - - 43 - : Function: - func_index: 16 - ? - Value - - 44 - : Function: - func_index: 17 - ? - Value - - 45 - : Function: - func_index: 18 - ? - Value - - 46 - : Function: - func_index: 19 - ? - Value - - 47 - : Function: - func_index: 20 - ? - Value - - 48 - : Function: - func_index: 21 - ? - Value - - 49 - : Function: - func_index: 22 - ? - Value - - 50 - : Function: - func_index: 23 - ? - Value - - 51 - : Function: - func_index: 24 - ? - Value - - 52 - : Function: - func_index: 25 - ? - Value - - 53 - : Function: - func_index: 26 - ? - Value - - 54 - : Function: - func_index: 27 - ? - Value - - 55 - : Function: - func_index: 28 - ? - Value - - 56 - : Function: - func_index: 29 - ? - Value - - 57 - : Function: - func_index: 30 - ? - Value - - 58 - : Function: - func_index: 31 - ? - Value - - 59 - : Function: - func_index: 32 - ? - Value - - 60 - : Function: - func_index: 33 - ? - Value - - 61 - : Function: - func_index: 34 - ? - Value - - 62 - : Function: - func_index: 35 - ? - Value - - 63 - : Function: - func_index: 36 - ? - Value - - 64 - : Function: - func_index: 37 - ? - Value - - 102 - : Const: - const_index: 1 - wildcard_imports: [] + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 + span: + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 + span: + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 + accesses: + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 + - file_id: 1 + span: + start: 61 + end: 64 - file_id: 1 span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ - name: - inner: 91 - span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: [] -enums: [] -exports: - 118: - Function: - internal_name: - inner: 118 + start: 70 + end: 73 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 + span: + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 span: - start: 95 - end: 98 - external_name: ~ - id: 107 -structs: - - id: 71 + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 + span: + start: 13511 + end: 13514 + - file_id: 0 + span: + start: 13612 + end: 13615 + - file_id: 0 + span: + start: 13737 + end: 13740 + - file_id: 0 + span: + start: 13749 + end: 13752 + - file_id: 0 + span: + start: 13875 + end: 13878 + - file_id: 0 + span: + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 + span: + start: 14280 + end: 14283 + - file_id: 0 + span: + start: 14292 + end: 14295 + - file_id: 0 + span: + start: 14402 + end: 14405 + - file_id: 0 + span: + start: 14518 + end: 14521 + - file_id: 0 + span: + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 + span: + start: 18219 + end: 18222 + - file_id: 0 + span: + start: 18231 + end: 18234 + - file_id: 0 + span: + start: 18359 + end: 18362 + - file_id: 0 + span: + start: 18371 + end: 18374 + - file_id: 0 + span: + start: 18502 + end: 18505 + - file_id: 0 + span: + start: 18514 + end: 18517 + - file_id: 0 + span: + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - id: 5 file_id: 0 namespace: 0 pub_span: - start: 3581 - end: 3584 + start: 151 + end: 154 name: - inner: 82 + inner: 7 span: - start: 3592 - end: 3598 - type_params: - - name: - inner: 5 - span: - start: 3599 - end: 3602 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3604 - end: 3610 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3628 - end: 3631 - - file_id: 0 - span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 - span: - start: 3622 - end: 3626 - ty: - inner: 91 - span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 - span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 - span: - start: 3915 - end: 3919 - - name: - inner: 83 - span: - start: 3647 - end: 3652 - ty: - inner: 91 - span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 - accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 - span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 + start: 160 + end: 163 + attributes: + - Intrinsic + type_params: [] + body: 10 accesses: - file_id: 0 span: - start: 3686 - end: 3692 + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 - file_id: 0 span: - start: 4051 - end: 4057 + start: 3750 + end: 3753 - file_id: 0 span: - start: 4218 - end: 4224 + start: 3758 + end: 3761 - file_id: 0 span: - start: 4462 - end: 4468 - - id: 106 - file_id: 1 - namespace: ~ - pub_span: ~ - name: - inner: 117 - span: - start: 19 - end: 26 - type_params: - - name: - inner: 13 - span: - start: 27 - end: 28 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 1 - span: - start: 39 - end: 40 - attributes: [] - fields: - - name: - inner: 31 - span: - start: 32 - end: 37 - ty: - inner: 156 - span: - start: 39 - end: 40 - pub_span: ~ - accesses: - - kind: Read - file_id: 1 - span: - start: 78 - end: 83 - lookup: - 31: 0 - accesses: - - file_id: 1 + start: 4060 + end: 4063 + - file_id: 0 span: - start: 53 - end: 60 -traits: - - id: 45 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 70 - span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 + start: 4068 + end: 4071 + - file_id: 0 span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] - span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 71 - span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 + start: 4076 + end: 4079 + - file_id: 0 span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] - span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 - file_id: 0 - namespace: 0 - pub_span: - start: 3259 - end: 3262 - name: - inner: 6 - span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 + start: 4712 + end: 4715 + - file_id: 0 span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3371 - end: 3375 - - file_id: 0 - span: - start: 3422 - end: 3426 - - file_id: 0 - span: - start: 3437 - end: 3441 - - file_id: 0 - span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 - file_id: 0 - namespace: 0 - pub_span: - start: 3955 - end: 3958 - name: - inner: 87 - span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 + start: 4720 + end: 4723 + - file_id: 0 span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] - span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 - span: - start: 4146 - end: 4150 - - file_id: 0 - span: - start: 4165 - end: 4169 - - file_id: 0 - span: - start: 4343 - end: 4347 - - file_id: 0 - span: - start: 4359 - end: 4363 - - file_id: 0 - span: - start: 4370 - end: 4374 - - file_id: 0 - span: - start: 4390 - end: 4394 - - file_id: 0 - span: - start: 4037 - end: 4041 - - file_id: 0 - span: - start: 4058 - end: 4062 - - file_id: 0 - span: - start: 4073 - end: 4077 - - file_id: 0 - span: - start: 4240 - end: 4244 - - file_id: 0 - span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 - span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 - file_id: 0 - - id: 53 - trait_index: 0 - type_params: [] - target: - inner: 10 - span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 - span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 - file_id: 0 - - id: 57 - trait_index: 1 - type_params: [] - target: - inner: 7 - span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 - span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 - file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 - span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 - type_params: [] - target: - inner: 13 - span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 + span: + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 file_id: 0 namespace: 0 - parent: ~ pub_span: - start: 0 - end: 3 - name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 - span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 - span: - start: 27 - end: 32 - const_value: - Int: 65536 - accesses: [] - attributes: [] - - id: 91 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: ~ + start: 179 + end: 182 name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 - span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 + inner: 8 span: - start: 5836 - end: 5847 - const_value: - Int: 32 + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 accesses: - file_id: 0 span: - start: 5989 - end: 6004 + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 + - file_id: 0 + span: + start: 10297 + end: 10300 + - file_id: 0 + span: + start: 10309 + end: 10312 + - file_id: 0 + span: + start: 10431 + end: 10434 + - file_id: 0 + span: + start: 10443 + end: 10446 + - file_id: 0 + span: + start: 10776 + end: 10779 + - file_id: 0 + span: + start: 10788 + end: 10791 + - file_id: 0 + span: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 + - file_id: 0 + span: + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 22 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 120 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_struct_init_with_type_args.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_struct_init_with_type_args.snap index 2856305..30344e7 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_struct_init_with_type_args.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__generic_struct_init_with_type_args.snap @@ -29,217 +29,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 20 + - 20 + - 20 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 22 + - 22 + - 22 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 24 + - 24 + - 24 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 26 + - 26 + - 26 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 28 + - 28 + - 28 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 30 + - 30 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 32 + - 32 + - 32 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 34 + - 34 + - 34 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 36 + - 36 + - 36 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 38 + - 38 + - 38 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 40 + - 40 + - 40 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 42 + - 42 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 21 - mutable: false + memory: 45 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 21 + trait_index: 14 + assoc_name: 61 + base: 45 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 23 + trait_index: 12 + assoc_name: 62 + base: 47 - Function: signature: items: - - 21 - - 23 - - 26 + - 45 + - 47 + - 50 params_count: 2 - Function: signature: items: - - 21 - - 23 + - 45 + - 47 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 29 + trait_index: 12 + assoc_name: 62 + base: 53 - Function: signature: items: - - 20 - - 29 - - 30 + - 44 + - 53 + - 54 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 32 + trait_index: 14 + assoc_name: 61 + base: 56 - Function: signature: items: - - 32 - - 33 + - 56 + - 57 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 36 - memory: 35 - mutable: false + of: 60 + memory: 59 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 35 + trait_index: 14 + assoc_name: 61 + base: 59 - Function: signature: items: - - 37 - - 38 + - 61 + - 62 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 41 - memory: 40 - mutable: false + of: 65 + memory: 64 + ownership: Shared - Pointer: - to: 41 - memory: 40 - mutable: false + to: 65 + memory: 64 + ownership: Shared - Function: signature: items: - - 42 - - 43 + - 66 + - 67 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 46 - memory: 45 - mutable: false + to: 70 + memory: 69 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 45 + trait_index: 14 + assoc_name: 61 + base: 69 - Slice: - of: 46 - memory: 45 - mutable: false + of: 70 + memory: 69 + ownership: Shared - Function: signature: items: - - 47 - - 48 - - 49 + - 71 + - 72 + - 73 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 51 + trait_index: 14 + assoc_name: 61 + base: 75 - Function: signature: items: - - 52 + - 76 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 54 + trait_index: 14 + assoc_name: 61 + base: 78 - Function: signature: items: - - 55 + - 79 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 57 - mutable: true + memory: 81 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 57 + trait_index: 14 + assoc_name: 61 + base: 81 - Function: signature: items: - - 58 + - 82 - 6 - - 59 + - 83 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 62 - mutable: true + memory: 86 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 64 - mutable: false + memory: 88 + ownership: Shared - Function: signature: items: - - 63 - - 65 - - 61 + - 87 + - 89 + - 85 - 2 params_count: 3 - Function: @@ -272,6 +402,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -380,14 +564,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 90 + trait_index: 14 + assoc_name: 61 + base: 133 - TypeParam: owner: ImplBlock: 2 @@ -395,248 +650,263 @@ types: - Struct: struct_index: 0 args: - - 92 + - 135 - Function: signature: items: - - 93 + - 136 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 92 + trait_index: 14 + assoc_name: 61 + base: 135 - Function: signature: items: - - 95 - - 93 + - 138 + - 136 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 97 + trait_index: 15 + assoc_name: 57 + base: 140 - Pointer: - to: 97 - memory: 98 - mutable: true + to: 140 + memory: 141 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 100 - memory: 98 - mutable: true + to: 143 + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 100 - - 101 + - 142 + - 143 + - 144 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 98 + trait_index: 14 + assoc_name: 61 + base: 141 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 104 - memory: 98 - mutable: true + of: 147 + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 103 - - 105 + - 142 + - 146 + - 148 params_count: 2 - Struct: struct_index: 0 args: - - 98 + - 141 - Pointer: to: 6 - memory: 98 - mutable: true + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 107 - - 108 + - 142 + - 150 + - 151 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 111 - memory: 110 - mutable: false + to: 154 + memory: 153 + ownership: Shared - Function: signature: items: - - 112 + - 155 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 115 - memory: 114 - mutable: true + to: 158 + memory: 157 + ownership: Exclusive - Function: signature: items: - - 116 + - 159 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 119 - memory: 118 - mutable: false + to: 162 + memory: 161 + ownership: Shared - Function: signature: items: - - 120 + - 163 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 123 - memory: 122 - mutable: false + to: 166 + memory: 165 + ownership: Shared - Pointer: - to: 123 - memory: 122 - mutable: true + to: 166 + memory: 165 + ownership: Exclusive - Function: signature: items: - - 124 - - 125 + - 167 + - 168 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 128 - memory: 127 - mutable: false + to: 171 + memory: 170 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 127 + trait_index: 14 + assoc_name: 61 + base: 170 - Function: signature: items: - - 129 - - 130 - - 129 + - 172 + - 173 + - 172 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 133 - memory: 132 - mutable: false + to: 176 + memory: 175 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 132 + trait_index: 14 + assoc_name: 61 + base: 175 - Function: signature: items: - - 134 - - 135 - - 134 + - 177 + - 178 + - 177 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 138 - memory: 137 - mutable: true + to: 181 + memory: 180 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 137 + trait_index: 14 + assoc_name: 61 + base: 180 - Function: signature: items: - - 139 - - 140 - - 139 + - 182 + - 183 + - 182 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 143 - memory: 142 - mutable: true + to: 186 + memory: 185 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 142 + trait_index: 14 + assoc_name: 61 + base: 185 - Function: signature: items: - - 144 - - 145 - - 144 + - 187 + - 188 + - 187 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 190 + - Function: + signature: + items: + - 191 + - 191 + - 191 params_count: 2 - TypeParam: owner: @@ -647,28 +917,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 148 - memory: 147 - mutable: false + of: 194 + memory: 193 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 147 + trait_index: 14 + assoc_name: 61 + base: 193 - Function: signature: items: - - 149 - - 150 + - 195 + - 196 params_count: 1 - Pointer: - to: 148 - memory: 147 - mutable: false + to: 194 + memory: 193 + ownership: Shared - Function: signature: items: - - 149 - - 152 + - 195 + - 198 params_count: 1 - Function: signature: @@ -684,7 +954,7 @@ types: params_count: 1 - TypeParam: owner: - Struct: 106 + Struct: 402 param_index: 0 - Struct: struct_index: 1 @@ -693,7005 +963,23619 @@ types: - Function: signature: items: - - 157 + - 203 params_count: 0 - FunctionItem: - id: 1 - type_args: - - 1 + id: 58 + type_args: [] - FunctionItem: - id: 2 - type_args: - - 1 + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 + type_args: + - 1 + - FunctionItem: + id: 39 + type_args: + - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 161 + - 249 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 161 + - 249 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 164 + - 252 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 164 + - 252 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 100 + - 143 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 104 - memory: 98 - mutable: false + to: 147 + memory: 141 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 104 + - 147 - Slice: - of: 104 - memory: 98 - mutable: false + of: 147 + memory: 141 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 118 + trait_index: 14 + assoc_name: 61 + base: 161 - FunctionItem: - id: 6 + id: 43 type_args: - - 128 - - 127 + - 171 + - 170 - FunctionItem: - id: 6 + id: 43 type_args: - - 133 - - 132 + - 176 + - 175 - FunctionItem: - id: 6 + id: 43 type_args: - - 138 - - 137 + - 181 + - 180 - FunctionItem: - id: 6 + id: 43 type_args: - - 143 - - 142 + - 186 + - 185 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 147 - mutable: false + memory: 193 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 diagnostics: [] functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 31 + signature_index: 55 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 20 + inner: 44 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 29 + inner: 53 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 30 + inner: 54 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 34 + signature_index: 58 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 32 + inner: 56 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 33 + inner: 57 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 39 + signature_index: 63 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 37 + inner: 61 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 38 + inner: 62 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 44 + signature_index: 68 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 42 + inner: 66 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 43 + inner: 67 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 50 + signature_index: 74 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 47 + inner: 71 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 48 + inner: 72 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 49 + inner: 73 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 53 + signature_index: 77 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 52 + inner: 76 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 56 + signature_index: 80 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 55 + inner: 79 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 60 + signature_index: 84 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 58 + inner: 82 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 59 + inner: 83 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 61 + - - 61 + - Equals: 85 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 61 + - - 61 + - Equals: 85 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 63 + inner: 87 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 65 + inner: 89 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 61 + inner: 85 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 97 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 95 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 span: - start: 1813 - end: 1816 + start: 3058 + end: 3059 + ty: + inner: 11 + span: + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3103 + end: 3104 + ty: + inner: 13 + span: + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 span: - start: 1863 - end: 1868 + start: 3111 + end: 3112 ty: - inner: 12 + inner: 13 span: - start: 1870 - end: 1873 + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 - result: - inner: 11 - span: - start: 1933 - end: 1936 - accesses: [] - attributes: - - Intrinsic - body: ~ - - id: 30 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: - start: 1952 - end: 1955 - type_params: [] - type_param_parent: ~ - inherited_type_param_count: 0 - signature_index: 81 - name: - inner: 56 - span: - start: 1959 - end: 1972 - params: + start: 3159 + end: 3162 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 1973 - end: 1978 + start: 3164 + end: 3165 ty: inner: 14 span: - start: 1980 - end: 1983 + start: 3167 + end: 3170 result: - inner: 10 + inner: 14 span: - start: 1988 - end: 1991 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 31 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 101 name: - inner: 57 + inner: 104 span: - start: 2014 - end: 2027 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3209 + end: 3210 + ty: + inner: 15 + span: + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 ty: inner: 15 span: - start: 2035 - end: 2038 + start: 3220 + end: 3223 result: - inner: 11 + inner: 15 span: - start: 2043 - end: 2046 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 32 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 98 name: - inner: 58 + inner: 105 span: - start: 2069 - end: 2082 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 + span: + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 span: - start: 2090 - end: 2093 + start: 3270 + end: 3271 + ty: + inner: 11 + span: + start: 3273 + end: 3276 result: - inner: 10 + inner: 11 span: - start: 2098 - end: 2101 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 33 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 99 name: - inner: 59 + inner: 106 span: - start: 2124 - end: 2137 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3315 + end: 3316 ty: - inner: 14 + inner: 13 span: - start: 2145 - end: 2148 + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 + span: + start: 3326 + end: 3329 result: inner: 13 span: - start: 2153 - end: 2156 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 34 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 100 name: - inner: 60 + inner: 107 span: - start: 2179 - end: 2192 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2200 - end: 2203 + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 result: - inner: 12 + inner: 14 span: - start: 2208 - end: 2211 - accesses: [] + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 35 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 101 name: - inner: 61 + inner: 108 span: - start: 2234 - end: 2247 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3421 + end: 3422 + ty: + inner: 15 + span: + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 span: - start: 2248 - end: 2253 + start: 3429 + end: 3430 ty: inner: 15 span: - start: 2255 - end: 2258 + start: 3432 + end: 3435 result: - inner: 13 + inner: 15 span: - start: 2263 - end: 2266 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 36 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 98 name: - inner: 62 + inner: 109 span: - start: 2289 - end: 2302 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 span: - start: 2310 - end: 2313 - result: - inner: 12 - span: - start: 2318 - end: 2321 - accesses: [] + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 + span: + start: 3482 + end: 3483 + ty: + inner: 11 + span: + start: 3485 + end: 3488 + result: + inner: 11 + span: + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 37 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 99 name: - inner: 63 + inner: 110 span: - start: 2344 - end: 2359 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3527 + end: 3528 ty: - inner: 14 + inner: 13 + span: + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 + span: + start: 3535 + end: 3536 + ty: + inner: 13 span: - start: 2367 - end: 2370 + start: 3538 + end: 3541 result: - inner: 15 + inner: 13 span: - start: 2375 - end: 2378 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 38 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 89 + signature_index: 100 name: - inner: 64 + inner: 111 span: - start: 2401 - end: 2415 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3580 + end: 3581 + ty: + inner: 14 + span: + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 span: - start: 2416 - end: 2421 + start: 3588 + end: 3589 ty: - inner: 15 + inner: 14 span: - start: 2423 - end: 2426 + start: 3591 + end: 3594 result: inner: 14 span: - start: 2431 - end: 2434 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 80 + - id: 75 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3618 + end: 3621 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 113 + signature_index: 101 name: - inner: 93 + inner: 112 span: - start: 4588 - end: 4592 - params: [] + start: 3625 + end: 3632 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 + span: + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 + span: + start: 3641 + end: 3642 + ty: + inner: 15 + span: + start: 3644 + end: 3647 result: - inner: 112 + inner: 15 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 112 - expected_type: 112 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 112 - span: - start: 4632 - end: 4633 - ty: 112 + start: 3652 + end: 3655 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 12438 + end: 12445 + attributes: + - Intrinsic + body: ~ + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 117 + signature_index: 98 name: - inner: 94 + inner: 113 span: - start: 4671 - end: 4679 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 116 + inner: 11 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 116 - expected_type: 116 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 116 - span: - start: 4723 - end: 4724 - ty: 116 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 121 + signature_index: 102 name: - inner: 95 + inner: 114 span: - start: 4762 - end: 4769 + start: 3731 + end: 3738 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4786 - end: 4789 + start: 3739 + end: 3740 ty: - inner: 120 + inner: 10 span: - start: 4791 - end: 4798 - result: - inner: 16 - span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 120 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 173 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 173 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 + result: + inner: 10 + span: + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 + start: 3777 + end: 3780 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 115 + span: + start: 3784 + end: 3791 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: + start: 3792 + end: 3793 + ty: inner: 13 span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 + span: + start: 3800 + end: 3801 + ty: + inner: 13 + span: + start: 3803 + end: 3806 + result: + inner: 13 + span: + start: 3811 + end: 3814 + accesses: + - file_id: 0 + span: + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 126 + signature_index: 103 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 124 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 125 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 124 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 125 - expected_type: 125 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 125 - span: - start: 4936 - end: 4939 - ty: 125 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 + start: 3883 + end: 3886 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 117 + span: + start: 3890 + end: 3897 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 + start: 3898 + end: 3899 + ty: + inner: 14 span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3901 + end: 3904 + - mut_span: ~ + name: + inner: 101 + span: + start: 3906 + end: 3907 + ty: + inner: 14 + span: + start: 3909 + end: 3912 + result: + inner: 14 + span: + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 + attributes: + - Intrinsic + body: ~ + - id: 81 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 131 + signature_index: 101 name: - inner: 98 + inner: 118 span: - start: 4977 - end: 4980 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3951 + end: 3952 ty: - inner: 129 + inner: 15 span: - start: 5002 - end: 5009 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3959 + end: 3960 ty: - inner: 130 + inner: 15 span: - start: 5018 - end: 5027 + start: 3962 + end: 3965 result: - inner: 129 + inner: 15 span: - start: 5032 - end: 5039 - accesses: [] + start: 3970 + end: 3973 + accesses: + - file_id: 0 + span: + start: 12539 + end: 12546 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 130 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 129 - expected_type: 129 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 130 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 130 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 128 - - 127 - arguments: [] - ty: 130 - span: - start: 5078 - end: 5097 - ty: 130 - span: - start: 5070 - end: 5097 - ty: 129 - span: - start: 5051 - end: 5097 - ty: 129 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 - span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 - span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 3989 + end: 3992 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 136 + signature_index: 98 name: - inner: 99 + inner: 119 span: - start: 5136 - end: 5139 + start: 3996 + end: 4003 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 4004 + end: 4005 ty: - inner: 134 + inner: 11 span: - start: 5161 - end: 5168 + start: 4007 + end: 4010 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 4012 + end: 4013 ty: - inner: 135 + inner: 11 span: - start: 5177 - end: 5186 + start: 4015 + end: 4018 result: - inner: 134 + inner: 11 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 135 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 134 - expected_type: 134 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 135 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 135 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 133 - - 132 - arguments: [] - ty: 135 - span: - start: 5237 - end: 5256 - ty: 135 - span: - start: 5229 - end: 5256 - ty: 134 - span: - start: 5210 - end: 5256 - ty: 134 + start: 4023 + end: 4026 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 4042 + end: 4045 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 120 + span: + start: 4049 + end: 4056 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: - inner: 13 + start: 4057 + end: 4058 + ty: + inner: 10 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4060 + end: 4063 + - mut_span: ~ + name: + inner: 101 + span: + start: 4065 + end: 4066 + ty: + inner: 10 + span: + start: 4068 + end: 4071 + result: + inner: 10 + span: + start: 4076 + end: 4079 + accesses: + - file_id: 0 + span: + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 + attributes: + - Intrinsic + body: ~ + - id: 84 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4095 + end: 4098 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 141 + signature_index: 99 name: - inner: 100 + inner: 121 span: - start: 5295 - end: 5302 + start: 4102 + end: 4109 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4110 + end: 4111 ty: - inner: 139 + inner: 13 span: - start: 5324 - end: 5335 + start: 4113 + end: 4116 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4118 + end: 4119 ty: - inner: 140 + inner: 13 span: - start: 5344 - end: 5353 + start: 4121 + end: 4124 result: - inner: 139 + inner: 13 span: - start: 5358 - end: 5369 - accesses: [] + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 140 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 139 - expected_type: 139 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 140 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 140 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 138 - - 137 - arguments: [] - ty: 140 - span: - start: 5408 - end: 5427 - ty: 140 - span: - start: 5400 - end: 5427 - ty: 139 - span: - start: 5381 - end: 5427 - ty: 139 - span: - start: 5370 - end: 5439 - - id: 87 + - Intrinsic + body: ~ + - id: 85 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 - span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: - inner: 13 - span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 146 + signature_index: 103 name: - inner: 101 + inner: 122 span: - start: 5466 - end: 5473 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4163 + end: 4164 ty: - inner: 144 + inner: 12 span: - start: 5495 - end: 5506 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4171 + end: 4172 ty: - inner: 145 + inner: 12 span: - start: 5515 - end: 5524 - result: - inner: 144 - span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 145 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 144 - expected_type: 144 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 145 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 145 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 143 - - 142 - arguments: [] - ty: 145 - span: - start: 5579 - end: 5598 - ty: 145 - span: - start: 5571 - end: 5598 - ty: 144 - span: - start: 5552 - end: 5598 - ty: 144 - span: - start: 5541 - end: 5610 - - id: 107 - file_id: 1 - namespace: ~ - parent: ~ - pub_span: ~ - type_params: [] - type_param_parent: ~ - inherited_type_param_count: 0 - signature_index: 158 - name: - inner: 120 - span: - start: 62 - end: 66 - params: [] + start: 4174 + end: 4177 result: - inner: 157 + inner: 12 span: - start: 72 - end: 81 + start: 4182 + end: 4185 accesses: - - file_id: 1 - span: - start: 136 - end: 140 - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 82 - end: 126 - locals: [] - inferred_type: 157 - expected_type: 157 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 1 - fields: - - kind: - Int: - value: 1 - ty: 11 - span: - start: 110 - end: 111 - - kind: - Int: - value: 2 - ty: 11 - span: - start: 121 - end: 122 - ty: 157 - span: - start: 88 - end: 124 - ty: 157 + - file_id: 0 span: - start: 82 - end: 126 - - id: 68 + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4201 + end: 4204 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 79 + inner: 123 span: - start: 3404 - end: 3408 + start: 4208 + end: 4218 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4219 + end: 4220 ty: - inner: 21 + inner: 11 span: - start: 3409 - end: 3413 + start: 4222 + end: 4225 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4227 + end: 4228 ty: - inner: 23 + inner: 11 span: - start: 3422 - end: 3432 + start: 4230 + end: 4233 result: - inner: 26 + inner: 11 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 21 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 23 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 26 - expected_type: 26 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 21 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 21 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 23 - span: - start: 3484 - end: 3489 - ty: 26 - span: - start: 3466 - end: 3490 - ty: 26 + start: 4238 + end: 4241 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 6924 + end: 6934 + - file_id: 0 + span: + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4257 + end: 4260 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 28 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 81 + inner: 124 span: - start: 3519 - end: 3523 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4275 + end: 4276 ty: - inner: 21 + inner: 13 span: - start: 3524 - end: 3528 + start: 4278 + end: 4281 + - mut_span: ~ + name: + inner: 101 + span: + start: 4283 + end: 4284 + ty: + inner: 13 + span: + start: 4286 + end: 4289 result: - inner: 23 + inner: 13 span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 21 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 23 - expected_type: 23 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 21 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 21 - span: - start: 3566 - end: 3570 - ty: 23 - span: - start: 3554 - end: 3571 - ty: 23 + start: 4294 + end: 4297 + accesses: + - file_id: 0 span: - start: 3544 - end: 3577 - - id: 72 + start: 9522 + end: 9532 + - file_id: 0 + span: + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3718 - end: 3721 - type_params: - - name: - inner: 13 - span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 94 + start: 4313 + end: 4316 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 84 + inner: 125 span: - start: 3725 - end: 3727 - params: [] + start: 4320 + end: 4329 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4330 + end: 4331 + ty: + inner: 11 + span: + start: 4333 + end: 4336 + - mut_span: ~ + name: + inner: 101 + span: + start: 4338 + end: 4339 + ty: + inner: 11 + span: + start: 4341 + end: 4344 result: - inner: 93 + inner: 11 span: - start: 3736 - end: 3740 + start: 4349 + end: 4352 accesses: - file_id: 0 span: - start: 4226 - end: 4228 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 93 - expected_type: 93 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 161 - - 92 - arguments: [] - ty: 95 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 161 - - 92 - arguments: [] - ty: 95 - span: - start: 3788 - end: 3803 - ty: 93 - span: - start: 3751 - end: 3805 - ty: 93 + start: 7032 + end: 7041 + - file_id: 0 span: - start: 3741 - end: 3811 - - id: 73 + start: 8300 + end: 8309 + - file_id: 0 + span: + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 + attributes: + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 96 + start: 4368 + end: 4371 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 85 + inner: 126 span: - start: 3838 - end: 3843 + start: 4375 + end: 4384 params: - mut_span: ~ name: - inner: 86 + inner: 100 + span: + start: 4385 + end: 4386 + ty: + inner: 13 + span: + start: 4388 + end: 4391 + - mut_span: ~ + name: + inner: 101 span: - start: 3847 - end: 3852 + start: 4393 + end: 4394 ty: - inner: 95 + inner: 13 span: - start: 3854 - end: 3863 + start: 4396 + end: 4399 result: - inner: 93 + inner: 13 span: - start: 3868 - end: 3872 + start: 4404 + end: 4407 accesses: - file_id: 0 span: - start: 4470 - end: 4475 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 95 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 93 - expected_type: 93 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 164 - - 92 - arguments: [] - ty: 95 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 95 - span: - start: 3938 - end: 3943 - ty: 95 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 164 - - 92 - arguments: [] - ty: 95 - span: - start: 3898 - end: 3913 - ty: 93 - span: - start: 3883 - end: 3945 - ty: 93 + start: 9630 + end: 9639 + - file_id: 0 span: - start: 3873 - end: 3951 - - id: 76 + start: 10898 + end: 10907 + attributes: + - Intrinsic + body: ~ + - id: 90 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4423 + end: 4426 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 109 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 88 + inner: 127 span: - start: 4007 - end: 4014 + start: 4430 + end: 4440 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4441 + end: 4442 ty: - inner: 99 + inner: 11 span: - start: 4021 - end: 4041 + start: 4444 + end: 4447 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4449 + end: 4450 ty: - inner: 107 + inner: 11 span: - start: 4051 - end: 4068 + start: 4452 + end: 4455 result: - inner: 108 + inner: 11 span: - start: 4073 - end: 4091 + start: 4460 + end: 4463 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 7141 + end: 7151 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 91 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 102 + parent: ~ + pub_span: + start: 4479 + end: 4482 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 90 + inner: 128 span: - start: 4115 - end: 4120 + start: 4486 + end: 4496 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4497 + end: 4498 ty: - inner: 99 + inner: 13 span: - start: 4130 - end: 4150 + start: 4500 + end: 4503 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4505 + end: 4506 ty: - inner: 100 + inner: 13 span: - start: 4159 - end: 4160 + start: 4508 + end: 4511 result: - inner: 101 + inner: 13 span: - start: 4165 - end: 4182 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 101 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 101 - expected_type: 101 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 97 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 99 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 98 - - 100 - arguments: [] - ty: 107 - span: - start: 4218 - end: 4235 - ty: 101 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 101 - span: - start: 4267 - end: 4270 - ty: 100 - memory: 98 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 100 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 101 - span: - start: 4290 - end: 4293 - ty: 101 + start: 4516 + end: 4519 + accesses: + - file_id: 0 span: - start: 4183 - end: 4299 - - id: 78 + start: 9739 + end: 9749 + - file_id: 0 + span: + start: 11040 + end: 11050 + attributes: + - Intrinsic + body: ~ + - id: 92 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 106 + parent: ~ + pub_span: + start: 4535 + end: 4538 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 92 + inner: 129 span: - start: 4322 - end: 4333 + start: 4542 + end: 4549 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4337 - end: 4341 + start: 4550 + end: 4551 ty: - inner: 99 + inner: 11 span: - start: 4343 - end: 4363 + start: 4553 + end: 4556 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4558 + end: 4559 ty: - inner: 103 + inner: 11 span: - start: 4370 - end: 4385 + start: 4561 + end: 4564 result: - inner: 105 + inner: 11 span: - start: 4390 - end: 4408 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 103 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 105 - expected_type: 105 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 98 - - 104 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 97 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 99 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 98 - - 104 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 103 - span: - start: 4481 - end: 4484 - ty: 107 - span: - start: 4462 - end: 4485 - ty: 170 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 103 - span: - start: 4517 - end: 4520 - ty: 105 - span: - start: 4419 - end: 4531 - ty: 105 + start: 4569 + end: 4572 + accesses: + - file_id: 0 span: - start: 4409 - end: 4542 - - id: 88 + start: 7245 + end: 7252 + - file_id: 0 + span: + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic + body: ~ + - id: 93 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4588 + end: 4591 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 151 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 18 + inner: 130 span: - start: 5671 - end: 5674 + start: 4595 + end: 4602 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4603 + end: 4604 + ty: + inner: 13 span: - start: 5675 - end: 5679 + start: 4606 + end: 4609 + - mut_span: ~ + name: + inner: 101 + span: + start: 4611 + end: 4612 ty: - inner: 149 + inner: 13 span: - start: 5675 - end: 5679 + start: 4614 + end: 4617 result: - inner: 150 + inner: 13 span: - start: 5684 - end: 5693 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 149 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 150 - expected_type: 150 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 147 - - 148 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 149 - span: - start: 5714 - end: 5718 - ty: 150 - span: - start: 5704 - end: 5719 - ty: 150 + start: 4622 + end: 4625 + accesses: + - file_id: 0 span: - start: 5694 - end: 5725 - - id: 89 + start: 9843 + end: 9850 + - file_id: 0 + span: + start: 11177 + end: 11184 + attributes: + - Intrinsic + body: ~ + - id: 94 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5745 - end: 5748 + start: 4641 + end: 4644 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 153 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 91 + inner: 131 span: - start: 5752 - end: 5755 + start: 4648 + end: 4655 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4656 + end: 4657 + ty: + inner: 11 + span: + start: 4659 + end: 4662 + - mut_span: ~ + name: + inner: 101 span: - start: 5756 - end: 5760 + start: 4664 + end: 4665 ty: - inner: 149 + inner: 11 span: - start: 5756 - end: 5760 + start: 4667 + end: 4670 result: - inner: 152 + inner: 11 span: - start: 5765 - end: 5772 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 149 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 152 - expected_type: 152 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 147 - - 148 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 149 - span: - start: 5793 - end: 5797 - ty: 152 - span: - start: 5783 - end: 5798 - ty: 152 + start: 4675 + end: 4678 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 + attributes: + - Intrinsic + body: ~ + - id: 95 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4694 + end: 4697 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 102 name: - inner: 104 + inner: 132 span: - start: 5887 - end: 5905 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 5906 - end: 5910 + start: 4709 + end: 4710 ty: - inner: 17 + inner: 10 + span: + start: 4712 + end: 4715 + - mut_span: ~ + name: + inner: 101 + span: + start: 4717 + end: 4718 + ty: + inner: 10 span: - start: 5906 - end: 5910 + start: 4720 + end: 4723 result: - inner: 17 + inner: 10 span: - start: 5915 - end: 5919 - accesses: [] + start: 4728 + end: 4731 + accesses: + - file_id: 0 + span: + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 - span: - start: 5920 - end: 6063 - - id: 93 + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 4747 + end: 4750 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 99 name: - inner: 106 + inner: 133 span: - start: 6090 - end: 6108 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6109 - end: 6113 + start: 4762 + end: 4763 ty: - inner: 17 + inner: 13 span: - start: 6109 - end: 6113 + start: 4765 + end: 4768 + - mut_span: ~ + name: + inner: 101 + span: + start: 4770 + end: 4771 + ty: + inner: 13 + span: + start: 4773 + end: 4776 result: - inner: 17 + inner: 13 span: - start: 6118 - end: 6122 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 + start: 4781 + end: 4784 + accesses: + - file_id: 0 span: - start: 6123 - end: 6266 - - id: 94 + start: 9944 + end: 9951 + attributes: + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 103 name: - inner: 108 + inner: 134 span: - start: 6293 - end: 6301 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6302 - end: 6306 + start: 4815 + end: 4816 ty: - inner: 17 + inner: 12 + span: + start: 4818 + end: 4821 + - mut_span: ~ + name: + inner: 101 + span: + start: 4823 + end: 4824 + ty: + inner: 12 span: - start: 6302 - end: 6306 + start: 4826 + end: 4829 result: - inner: 16 + inner: 12 span: - start: 6311 - end: 6315 - accesses: [] + start: 4834 + end: 4837 + accesses: + - file_id: 0 + span: + start: 11303 + end: 11310 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 - span: - start: 6316 - end: 6353 - - id: 95 + - Intrinsic + body: ~ + - id: 98 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 4853 + end: 4856 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 96 name: - inner: 107 + inner: 135 span: - start: 6380 - end: 6398 + start: 4860 + end: 4870 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 4871 + end: 4876 ty: - inner: 17 + inner: 11 span: - start: 6399 - end: 6403 + start: 4878 + end: 4881 result: - inner: 16 + inner: 11 span: - start: 6408 - end: 6412 + start: 4886 + end: 4889 accesses: - file_id: 0 span: - start: 6141 - end: 6159 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 + start: 7442 + end: 7452 + - file_id: 0 span: - start: 6413 - end: 6455 - - id: 96 + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 + attributes: + - Intrinsic + body: ~ + - id: 99 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 4905 + end: 4908 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 97 name: - inner: 105 + inner: 136 span: - start: 6482 - end: 6500 + start: 4912 + end: 4922 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 4923 + end: 4928 ty: - inner: 17 + inner: 13 span: - start: 6501 - end: 6505 + start: 4930 + end: 4933 result: - inner: 16 + inner: 13 span: - start: 6510 - end: 6514 + start: 4938 + end: 4941 accesses: - file_id: 0 span: - start: 5938 - end: 5956 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 + start: 10040 + end: 10050 + - file_id: 0 span: - start: 6515 - end: 6557 - - id: 97 + start: 11407 + end: 11417 + attributes: + - Intrinsic + body: ~ + - id: 100 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 4957 + end: 4960 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 104 name: - inner: 109 + inner: 137 span: - start: 6584 - end: 6603 + start: 4964 + end: 4979 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 4980 + end: 4985 ty: - inner: 17 + inner: 11 span: - start: 6604 - end: 6608 + start: 4987 + end: 4990 result: - inner: 16 + inner: 14 span: - start: 6613 - end: 6617 + start: 4995 + end: 4998 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 105 name: - inner: 110 + inner: 138 span: - start: 6720 - end: 6734 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6735 - end: 6739 + start: 5044 + end: 5047 result: - inner: 16 + inner: 14 span: - start: 6744 - end: 6748 + start: 5052 + end: 5055 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 106 name: - inner: 111 + inner: 139 span: - start: 6818 - end: 6839 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6840 - end: 6844 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6849 - end: 6853 + start: 5109 + end: 5112 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 107 name: - inner: 112 + inner: 140 span: - start: 7011 - end: 7030 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 7031 - end: 7035 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 7040 - end: 7044 + start: 5166 + end: 5169 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 108 name: - inner: 113 + inner: 141 span: - start: 7213 - end: 7229 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 7230 - end: 7234 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 7239 - end: 7243 + start: 5223 + end: 5226 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 109 name: - inner: 114 + inner: 142 span: - start: 7326 - end: 7343 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 7344 - end: 7348 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 7353 - end: 7357 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 110 name: - inner: 115 + inner: 143 span: - start: 7515 - end: 7535 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 7536 - end: 7540 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 7545 - end: 7549 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7687 - end: 7688 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 - span: - start: 7560 - end: 7674 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 - span: - start: 7690 - end: 7716 - ty: 16 - span: - start: 7560 - end: 7717 - ty: 16 - span: - start: 7550 - end: 7723 - - id: 104 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7743 - end: 7746 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 111 name: - inner: 116 + inner: 144 span: - start: 7750 - end: 7766 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7767 - end: 7771 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 7767 - end: 7771 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 7776 - end: 7780 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7781 - end: 7823 - locals: - - name: - inner: 80 - span: - start: 7767 - end: 7771 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7791 - end: 7795 - kind: Read - - span: - start: 7806 - end: 7810 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: + - Intrinsic + body: ~ + - id: 108 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5413 + end: 5416 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 112 + name: + inner: 145 + span: + start: 5420 + end: 5433 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5434 + end: 5439 + ty: + inner: 14 + span: + start: 5441 + end: 5444 + result: + inner: 11 + span: + start: 5449 + end: 5452 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 109 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5468 + end: 5471 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 113 + name: + inner: 146 + span: + start: 5475 + end: 5488 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5489 + end: 5494 + ty: + inner: 14 + span: + start: 5496 + end: 5499 + result: + inner: 10 + span: + start: 5504 + end: 5507 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 110 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5523 + end: 5526 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 114 + name: + inner: 147 + span: + start: 5530 + end: 5543 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5544 + end: 5549 + ty: + inner: 15 + span: + start: 5551 + end: 5554 + result: + inner: 11 + span: + start: 5559 + end: 5562 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 111 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5578 + end: 5581 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 + name: + inner: 148 + span: + start: 5585 + end: 5598 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5599 + end: 5604 + ty: + inner: 15 + span: + start: 5606 + end: 5609 + result: + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 + name: + inner: 149 + span: + start: 5640 + end: 5653 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5654 + end: 5659 + ty: + inner: 14 + span: + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 113 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 + name: + inner: 150 + span: + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 + name: + inner: 151 + span: + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5764 + end: 5769 + ty: + inner: 15 + span: + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 152 + span: + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5819 + end: 5824 + ty: + inner: 15 + span: + start: 5826 + end: 5829 + result: + inner: 12 + span: + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 153 + span: + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 + span: + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 154 + span: + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 + span: + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 156 + name: + inner: 178 + span: + start: 21343 + end: 21347 + params: [] + result: + inner: 155 + span: + start: 21369 + end: 21376 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21377 + end: 21399 + locals: [] + inferred_type: 155 + expected_type: 155 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 155 + span: + start: 21387 + end: 21388 + ty: 155 + span: + start: 21377 + end: 21399 + - id: 376 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 160 + name: + inner: 179 + span: + start: 21426 + end: 21434 + params: [] + result: + inner: 159 + span: + start: 21456 + end: 21463 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21464 + end: 21486 + locals: [] + inferred_type: 159 + expected_type: 159 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 159 + span: + start: 21474 + end: 21475 + ty: 159 + span: + start: 21464 + end: 21486 + - id: 377 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 164 + name: + inner: 180 + span: + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: + inner: 163 + span: + start: 21542 + end: 21549 + result: + inner: 16 + span: + start: 21554 + end: 21558 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21559 + end: 21596 + locals: + - name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: 163 + mut_span: ~ + accesses: + - span: + start: 21569 + end: 21572 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Eq + span: + start: 21586 + end: 21588 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 261 + span: + start: 21569 + end: 21572 + right: + kind: + Int: + value: 0 + ty: 261 + span: + start: 21589 + end: 21590 + ty: 16 + span: + start: 21569 + end: 21590 + ty: 16 + span: + start: 21559 + end: 21596 + - id: 378 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 169 + name: + inner: 181 + span: + start: 21623 + end: 21631 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: + inner: 167 + span: + start: 21653 + end: 21660 + result: + inner: 168 + span: + start: 21665 + end: 21672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21673 + end: 21697 + locals: + - name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: 167 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 168 + expected_type: 168 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 168 + span: + start: 21683 + end: 21686 + ty: 168 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 174 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 172 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 173 + span: + start: 21765 + end: 21774 + result: + inner: 172 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 172 + mut_span: ~ + accesses: + - span: + start: 21798 + end: 21801 + kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 173 + mut_span: ~ + accesses: + - span: + start: 21817 + end: 21822 + kind: Read + inferred_type: 172 + expected_type: 172 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 21815 + end: 21816 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 173 + span: + start: 21798 + end: 21801 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21823 + end: 21824 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 173 + span: + start: 21817 + end: 21822 + right: + kind: + GenericCall: + id: 43 + type_args: + - 171 + - 170 + arguments: [] + ty: 173 + span: + start: 21825 + end: 21844 + ty: 173 + span: + start: 21817 + end: 21844 + ty: 172 + span: + start: 21798 + end: 21844 + ty: 172 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 179 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 177 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 178 + span: + start: 21924 + end: 21933 + result: + inner: 177 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 178 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 177 + expected_type: 177 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 178 + span: + start: 21957 + end: 21960 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21982 + end: 21983 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 178 + span: + start: 21976 + end: 21981 + right: + kind: + GenericCall: + id: 43 + type_args: + - 176 + - 175 + arguments: [] + ty: 178 + span: + start: 21984 + end: 22003 + ty: 178 + span: + start: 21976 + end: 22003 + ty: 177 + span: + start: 21957 + end: 22003 + ty: 177 + span: + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22035 + end: 22038 + type_params: + - name: + inner: 57 + span: + start: 22050 + end: 22053 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22055 + end: 22061 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22071 + end: 22074 + - file_id: 0 + span: + start: 22087 + end: 22090 + - file_id: 0 + span: + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 + span: + start: 22160 + end: 22163 + - name: + inner: 65 + span: + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22077 + end: 22078 + - file_id: 0 + span: + start: 22107 + end: 22108 + - file_id: 0 + span: + start: 22157 + end: 22158 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 184 + name: + inner: 182 + span: + start: 22042 + end: 22049 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: + inner: 182 + span: + start: 22071 + end: 22078 + - mut_span: ~ + name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: + inner: 183 + span: + start: 22087 + end: 22096 + result: + inner: 182 + span: + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 183 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 182 + expected_type: 182 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 183 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 183 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 181 + - 180 + arguments: [] + ty: 183 + span: + start: 22147 + end: 22166 + ty: 183 + span: + start: 22139 + end: 22166 + ty: 182 + span: + start: 22120 + end: 22166 + ty: 182 + span: + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 + span: + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 + span: + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 189 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: + inner: 187 + span: + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: + inner: 188 + span: + start: 22250 + end: 22259 + result: + inner: 187 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 188 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 187 + expected_type: 187 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 188 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 188 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 186 + - 185 + arguments: [] + ty: 188 + span: + start: 22310 + end: 22329 + ty: 188 + span: + start: 22302 + end: 22329 + ty: 187 + span: + start: 22283 + end: 22329 + ty: 187 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 + span: + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 192 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: + inner: 191 + span: + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: + inner: 191 + span: + start: 22414 + end: 22423 + result: + inner: 191 + span: + start: 22428 + end: 22437 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 191 + expected_type: 191 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 191 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 191 + span: + start: 22469 + end: 22470 + ty: 191 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 191 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 191 + span: + start: 22503 + end: 22507 + ty: 191 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 191 + span: + start: 22512 + end: 22516 + ty: 191 + span: + start: 22511 + end: 22516 + ty: 191 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 191 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 191 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 191 + span: + start: 22567 + end: 22573 + ty: 191 + span: + start: 22438 + end: 22579 + - id: 403 + file_id: 1 + namespace: ~ + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 204 + name: + inner: 205 + span: + start: 62 + end: 66 + params: [] + result: + inner: 203 + span: + start: 72 + end: 81 + accesses: + - file_id: 1 + span: + start: 136 + end: 140 + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 82 + end: 126 + locals: [] + inferred_type: 203 + expected_type: 203 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 1 + fields: + - kind: + Int: + value: 1 + ty: 11 + span: + start: 110 + end: 111 + - kind: + Int: + value: 2 + ty: 11 + span: + start: 121 + end: 122 + ty: 203 + span: + start: 88 + end: 124 + ty: 203 + span: + start: 82 + end: 126 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 21 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 20 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 20 + span: + start: 425 + end: 429 + result: + inner: 20 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 23 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 22 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 22 + span: + start: 502 + end: 506 + result: + inner: 22 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 25 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 24 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 24 + span: + start: 579 + end: 583 + result: + inner: 24 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 27 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 26 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 26 + span: + start: 656 + end: 660 + result: + inner: 26 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 29 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 28 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 28 + span: + start: 733 + end: 737 + result: + inner: 28 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 31 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 30 + span: + start: 799 + end: 803 + result: + inner: 30 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 33 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 32 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 32 + span: + start: 885 + end: 889 + result: + inner: 32 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 35 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 34 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 34 + span: + start: 968 + end: 972 + result: + inner: 34 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 37 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 36 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 36 + span: + start: 1054 + end: 1058 + result: + inner: 36 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 39 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 38 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 38 + span: + start: 1131 + end: 1135 + result: + inner: 38 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 41 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 40 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 40 + span: + start: 1208 + end: 1212 + result: + inner: 40 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 43 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 42 + span: + start: 1283 + end: 1287 + result: + inner: 42 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 45 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 47 + span: + start: 20204 + end: 20214 + result: + inner: 50 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 45 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 47 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 50 + expected_type: 50 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 45 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 45 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 47 + span: + start: 20266 + end: 20271 + ty: 50 + span: + start: 20248 + end: 20272 + ty: 50 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 52 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 45 + span: + start: 20306 + end: 20310 + result: + inner: 47 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 45 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 47 + expected_type: 47 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 45 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 45 + span: + start: 20348 + end: 20352 + ty: 47 + span: + start: 20336 + end: 20353 + ty: 47 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 205 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 206 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 210 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 211 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 212 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 217 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 219 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 220 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 221 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 222 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 223 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 224 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 225 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 226 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 227 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 228 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 229 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 230 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 231 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 232 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 233 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 222 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 223 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 224 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 234 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 235 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 228 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 229 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 230 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 231 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 236 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 233 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 237 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 238 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 239 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 240 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 241 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 242 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 243 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 244 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 245 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 246 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 210 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 211 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 212 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 217 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 219 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 220 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 221 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 210 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 211 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 212 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 217 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 207 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 208 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 209 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 219 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 220 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 216 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 221 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 218 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 213 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 214 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 215 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 137 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 136 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 136 + expected_type: 136 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 249 + - 135 + arguments: [] + ty: 138 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 249 + - 135 + arguments: [] + ty: 138 + span: + start: 20570 + end: 20585 + ty: 136 + span: + start: 20533 + end: 20587 + ty: 136 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 139 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 138 + span: + start: 20636 + end: 20645 + result: + inner: 136 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 138 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 136 + expected_type: 136 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 252 + - 135 + arguments: [] + ty: 138 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 138 + span: + start: 20720 + end: 20725 + ty: 138 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 252 + - 135 + arguments: [] + ty: 138 + span: + start: 20680 + end: 20695 + ty: 136 + span: + start: 20665 + end: 20727 + ty: 136 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 152 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 142 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 150 + span: + start: 20829 + end: 20846 + result: + inner: 151 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 145 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 142 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 143 + span: + start: 20929 + end: 20930 + result: + inner: 144 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 144 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 144 + expected_type: 144 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 140 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 142 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 141 + - 143 + arguments: [] + ty: 150 + span: + start: 20984 + end: 21001 + ty: 144 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 144 + span: + start: 21029 + end: 21032 + ty: 143 + memory: 141 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 143 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 144 + span: + start: 21052 + end: 21055 + ty: 144 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 149 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 142 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 146 + span: + start: 21128 + end: 21143 + result: + inner: 148 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 146 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 148 + expected_type: 148 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 141 + - 147 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 140 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 142 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 141 + - 147 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 146 + span: + start: 21236 + end: 21239 + ty: 150 + span: + start: 21217 + end: 21240 + ty: 258 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 146 + span: + start: 21272 + end: 21275 + ty: 148 + span: + start: 21174 + end: 21286 + ty: 148 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 197 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 195 + span: + start: 22645 + end: 22649 + result: + inner: 196 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 195 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 196 + expected_type: 196 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 193 + - 194 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 195 + span: + start: 22684 + end: 22688 + ty: 196 + span: + start: 22674 + end: 22689 + ty: 196 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 199 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 195 + span: + start: 22726 + end: 22730 + result: + inner: 198 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 195 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 198 + expected_type: 198 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 193 + - 194 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 195 + span: + start: 22763 + end: 22767 + ty: 198 + span: + start: 22753 + end: 22768 + ty: 198 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: Block: scope_index: 0 expressions: [] @@ -7701,16 +24585,16 @@ functions: operator: inner: And span: - start: 7803 - end: 7805 + start: 24773 + end: 24775 left: kind: Binary: operator: inner: GreaterEq span: - start: 7796 - end: 7798 + start: 24766 + end: 24768 left: kind: Local: @@ -7718,28 +24602,28 @@ functions: local_index: 0 ty: 17 span: - start: 7791 - end: 7795 + start: 24761 + end: 24765 right: kind: Char: value: "!" ty: 17 span: - start: 7799 - end: 7802 + start: 24769 + end: 24772 ty: 16 span: - start: 7791 - end: 7802 + start: 24761 + end: 24772 right: kind: Binary: operator: inner: LessEq span: - start: 7811 - end: 7813 + start: 24781 + end: 24783 left: kind: Local: @@ -7747,1173 +24631,5585 @@ functions: local_index: 0 ty: 17 span: - start: 7806 - end: 7810 + start: 24776 + end: 24780 right: kind: Char: value: "~" ty: 17 span: - start: 7814 - end: 7817 + start: 24784 + end: 24787 ty: 16 span: - start: 7806 - end: 7817 + start: 24776 + end: 24787 ty: 16 span: - start: 7791 - end: 7817 - ty: 16 + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: + trait_index: 0 + ? - Type + - 23 + : Trait: + trait_index: 1 + ? - Type + - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 + : TypeSet: + typeset_index: 1 + ? - Type + - 158 + : TypeSet: + typeset_index: 0 + ? - Type + - 159 + : Trait: + trait_index: 12 + ? - Type + - 160 + : Trait: + trait_index: 13 + ? - Type + - 161 + : TraitAssocType: + trait_index: 13 + assoc_name: 161 + ? - Type + - 167 + : Struct: + struct_index: 0 + ? - Type + - 172 + : Trait: + trait_index: 15 + ? - Type + - 176 + : Module: + namespace_idx: 1 + ? - Value + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 + ? - Value + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 + : Function: + func_index: 26 + ? - Value + - 102 + : Function: + func_index: 27 + ? - Value + - 103 + : Function: + func_index: 28 + ? - Value + - 104 + : Function: + func_index: 29 + ? - Value + - 105 + : Function: + func_index: 30 + ? - Value + - 106 + : Function: + func_index: 31 + ? - Value + - 107 + : Function: + func_index: 32 + ? - Value + - 108 + : Function: + func_index: 33 + ? - Value + - 109 + : Function: + func_index: 34 + ? - Value + - 110 + : Function: + func_index: 35 + ? - Value + - 111 + : Function: + func_index: 36 + ? - Value + - 112 + : Function: + func_index: 37 + ? - Value + - 113 + : Function: + func_index: 38 + ? - Value + - 114 + : Function: + func_index: 39 + ? - Value + - 115 + : Function: + func_index: 40 + ? - Value + - 116 + : Function: + func_index: 41 + ? - Value + - 117 + : Function: + func_index: 42 + ? - Value + - 118 + : Function: + func_index: 43 + ? - Value + - 119 + : Function: + func_index: 44 + ? - Value + - 120 + : Function: + func_index: 45 + ? - Value + - 121 + : Function: + func_index: 46 + ? - Value + - 122 + : Function: + func_index: 47 + ? - Value + - 123 + : Function: + func_index: 48 + ? - Value + - 124 + : Function: + func_index: 49 + ? - Value + - 125 + : Function: + func_index: 50 + ? - Value + - 126 + : Function: + func_index: 51 + ? - Value + - 127 + : Function: + func_index: 52 + ? - Value + - 128 + : Function: + func_index: 53 + ? - Value + - 129 + : Function: + func_index: 54 + ? - Value + - 130 + : Function: + func_index: 55 + ? - Value + - 131 + : Function: + func_index: 56 + ? - Value + - 132 + : Function: + func_index: 57 + ? - Value + - 133 + : Function: + func_index: 58 + ? - Value + - 134 + : Function: + func_index: 59 + ? - Value + - 135 + : Function: + func_index: 60 + ? - Value + - 136 + : Function: + func_index: 61 + ? - Value + - 137 + : Function: + func_index: 62 + ? - Value + - 138 + : Function: + func_index: 63 + ? - Value + - 139 + : Function: + func_index: 64 + ? - Value + - 140 + : Function: + func_index: 65 + ? - Value + - 141 + : Function: + func_index: 66 + ? - Value + - 142 + : Function: + func_index: 67 + ? - Value + - 143 + : Function: + func_index: 68 + ? - Value + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 + : Const: + const_index: 1 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: [] +enums: [] +exports: + 205: + Function: + internal_name: + inner: 205 + span: + start: 136 + end: 140 + external_name: ~ + id: 403 +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 134 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 134 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 + - id: 402 + file_id: 1 + namespace: ~ + pub_span: ~ + name: + inner: 202 + span: + start: 19 + end: 23 + type_params: + - name: + inner: 65 + span: + start: 24 + end: 25 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 1 + span: + start: 40 + end: 41 + - file_id: 1 + span: + start: 55 + end: 56 + attributes: [] + fields: + - name: + inner: 203 + span: + start: 33 + end: 38 + ty: + inner: 202 + span: + start: 40 + end: 41 + pub_span: + start: 29 + end: 32 + accesses: + - kind: Init + file_id: 1 + span: + start: 103 + end: 108 + - name: + inner: 204 + span: + start: 47 + end: 53 + ty: + inner: 202 + span: + start: 55 + end: 56 + pub_span: + start: 43 + end: 46 + accesses: + - kind: Init + file_id: 1 + span: + start: 113 + end: 119 + lookup: + 203: 0 + 204: 1 + accesses: + - file_id: 1 + span: + start: 72 + end: 76 + - file_id: 1 + span: + start: 88 + end: 92 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 46 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 206 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 + span: + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 + span: + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 span: - start: 7781 - end: 7823 -globals: [] -memories: [] -namespaces: - - name: 0 - parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: - trait_index: 0 - assoc_name: 10 - ? - Type - - 26 - : TypeSet: - typeset_index: 1 - ? - Type - - 66 - : TypeSet: - typeset_index: 0 - ? - Type - - 70 - : Trait: - trait_index: 0 - ? - Type - - 71 - : Trait: - trait_index: 1 - ? - Type - - 72 - : TraitAssocType: - trait_index: 1 - assoc_name: 72 - ? - Type - - 82 - : Struct: - struct_index: 0 - ? - Type - - 87 - : Trait: - trait_index: 3 - ? - Type - - 91 - : Module: - namespace_idx: 1 - ? - Value - - 1 - : Const: - const_index: 0 - ? - Value - - 4 - : Function: - func_index: 0 - ? - Value - - 11 - : Function: - func_index: 1 - ? - Value - - 12 - : Function: - func_index: 2 - ? - Value - - 15 - : Function: - func_index: 3 - ? - Value - - 16 - : Function: - func_index: 4 - ? - Value - - 19 - : Function: - func_index: 5 - ? - Value - - 20 - : Function: - func_index: 6 - ? - Value - - 21 - : Function: - func_index: 7 - ? - Value - - 25 - : Function: - func_index: 8 - ? - Value - - 30 - : Function: - func_index: 9 - ? - Value - - 34 - : Function: - func_index: 10 - ? - Value - - 36 - : Function: - func_index: 11 - ? - Value - - 37 - : Function: - func_index: 12 - ? - Value - - 39 - : Function: - func_index: 13 - ? - Value - - 41 - : Function: - func_index: 14 - ? - Value - - 42 - : Function: - func_index: 15 - ? - Value - - 43 - : Function: - func_index: 16 - ? - Value - - 44 - : Function: - func_index: 17 - ? - Value - - 45 - : Function: - func_index: 18 - ? - Value - - 46 - : Function: - func_index: 19 - ? - Value - - 47 - : Function: - func_index: 20 - ? - Value - - 48 - : Function: - func_index: 21 - ? - Value - - 49 - : Function: - func_index: 22 - ? - Value - - 50 - : Function: - func_index: 23 - ? - Value - - 51 - : Function: - func_index: 24 - ? - Value - - 52 - : Function: - func_index: 25 - ? - Value - - 53 - : Function: - func_index: 26 - ? - Value - - 54 - : Function: - func_index: 27 - ? - Value - - 55 - : Function: - func_index: 28 - ? - Value - - 56 - : Function: - func_index: 29 - ? - Value - - 57 - : Function: - func_index: 30 - ? - Value - - 58 - : Function: - func_index: 31 - ? - Value - - 59 - : Function: - func_index: 32 - ? - Value - - 60 - : Function: - func_index: 33 - ? - Value - - 61 - : Function: - func_index: 34 - ? - Value - - 62 - : Function: - func_index: 35 - ? - Value - - 63 - : Function: - func_index: 36 - ? - Value - - 64 - : Function: - func_index: 37 - ? - Value - - 102 - : Const: - const_index: 1 - wildcard_imports: [] + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 + accesses: + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 - file_id: 1 span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ - name: - inner: 91 - span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: [] -enums: [] -exports: - 120: - Function: - internal_name: - inner: 120 + start: 77 + end: 80 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 + span: + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 + span: + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 + span: + start: 13511 + end: 13514 + - file_id: 0 + span: + start: 13612 + end: 13615 + - file_id: 0 + span: + start: 13737 + end: 13740 + - file_id: 0 + span: + start: 13749 + end: 13752 + - file_id: 0 + span: + start: 13875 + end: 13878 + - file_id: 0 + span: + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 span: - start: 136 - end: 140 - external_name: ~ - id: 107 -structs: - - id: 71 - file_id: 0 - namespace: 0 - pub_span: - start: 3581 - end: 3584 - name: - inner: 82 - span: - start: 3592 - end: 3598 - type_params: - - name: - inner: 5 - span: - start: 3599 - end: 3602 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3604 - end: 3610 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3628 - end: 3631 - - file_id: 0 - span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 - span: - start: 3622 - end: 3626 - ty: - inner: 91 - span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 - span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 - span: - start: 3915 - end: 3919 - - name: - inner: 83 - span: - start: 3647 - end: 3652 - ty: - inner: 91 - span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 - accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 - span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 - accesses: + start: 14280 + end: 14283 - file_id: 0 span: - start: 3686 - end: 3692 + start: 14292 + end: 14295 - file_id: 0 span: - start: 4051 - end: 4057 + start: 14402 + end: 14405 - file_id: 0 span: - start: 4218 - end: 4224 + start: 14518 + end: 14521 - file_id: 0 span: - start: 4462 - end: 4468 - - id: 106 - file_id: 1 - namespace: ~ - pub_span: ~ - name: - inner: 117 - span: - start: 19 - end: 23 - type_params: - - name: - inner: 13 - span: - start: 24 - end: 25 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 1 - span: - start: 40 - end: 41 - - file_id: 1 - span: - start: 55 - end: 56 - attributes: [] - fields: - - name: - inner: 118 - span: - start: 33 - end: 38 - ty: - inner: 156 - span: - start: 40 - end: 41 - pub_span: - start: 29 - end: 32 - accesses: - - kind: Init - file_id: 1 - span: - start: 103 - end: 108 - - name: - inner: 119 - span: - start: 47 - end: 53 - ty: - inner: 156 - span: - start: 55 - end: 56 - pub_span: - start: 43 - end: 46 - accesses: - - kind: Init - file_id: 1 - span: - start: 113 - end: 119 - lookup: - 118: 0 - 119: 1 - accesses: - - file_id: 1 + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 + span: + start: 18219 + end: 18222 + - file_id: 0 span: - start: 72 - end: 76 - - file_id: 1 + start: 18231 + end: 18234 + - file_id: 0 span: - start: 88 - end: 92 -traits: - - id: 45 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 70 - span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 + start: 18359 + end: 18362 + - file_id: 0 span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] - span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 71 - span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 + start: 18371 + end: 18374 + - file_id: 0 span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] - span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 - file_id: 0 - namespace: 0 - pub_span: - start: 3259 - end: 3262 - name: - inner: 6 - span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 + start: 18502 + end: 18505 + - file_id: 0 span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3371 - end: 3375 - - file_id: 0 - span: - start: 3422 - end: 3426 - - file_id: 0 - span: - start: 3437 - end: 3441 - - file_id: 0 - span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 + start: 18514 + end: 18517 + - file_id: 0 + span: + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - file_id: 1 + span: + start: 95 + end: 98 + - id: 5 file_id: 0 namespace: 0 pub_span: - start: 3955 - end: 3958 + start: 151 + end: 154 name: - inner: 87 - span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 - span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] - span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 - span: - start: 4146 - end: 4150 - - file_id: 0 - span: - start: 4165 - end: 4169 - - file_id: 0 - span: - start: 4343 - end: 4347 - - file_id: 0 - span: - start: 4359 - end: 4363 - - file_id: 0 - span: - start: 4370 - end: 4374 - - file_id: 0 - span: - start: 4390 - end: 4394 - - file_id: 0 - span: - start: 4037 - end: 4041 - - file_id: 0 - span: - start: 4058 - end: 4062 - - file_id: 0 - span: - start: 4073 - end: 4077 - - file_id: 0 - span: - start: 4240 - end: 4244 - - file_id: 0 - span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 - span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 - file_id: 0 - - id: 53 - trait_index: 0 - type_params: [] - target: - inner: 10 - span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 - span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 - file_id: 0 - - id: 57 - trait_index: 1 - type_params: [] - target: inner: 7 span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 - span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 - file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 - span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 + start: 160 + end: 163 + attributes: + - Intrinsic type_params: [] - target: - inner: 13 - span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 + body: 10 + accesses: + - file_id: 0 + span: + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 + - file_id: 0 + span: + start: 3750 + end: 3753 + - file_id: 0 + span: + start: 3758 + end: 3761 + - file_id: 0 + span: + start: 4060 + end: 4063 + - file_id: 0 + span: + start: 4068 + end: 4071 + - file_id: 0 + span: + start: 4076 + end: 4079 + - file_id: 0 + span: + start: 4712 + end: 4715 + - file_id: 0 + span: + start: 4720 + end: 4723 + - file_id: 0 + span: + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 + span: + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 file_id: 0 namespace: 0 - parent: ~ pub_span: - start: 0 - end: 3 - name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 - span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 - span: - start: 27 - end: 32 - const_value: - Int: 65536 - accesses: [] - attributes: [] - - id: 91 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: ~ + start: 179 + end: 182 name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 - span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 + inner: 8 span: - start: 5836 - end: 5847 - const_value: - Int: 32 + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 accesses: - file_id: 0 span: - start: 5989 - end: 6004 + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 + - file_id: 0 + span: + start: 10297 + end: 10300 + - file_id: 0 + span: + start: 10309 + end: 10312 + - file_id: 0 + span: + start: 10431 + end: 10434 + - file_id: 0 + span: + start: 10443 + end: 10446 + - file_id: 0 + span: + start: 10776 + end: 10779 + - file_id: 0 + span: + start: 10788 + end: 10791 + - file_id: 0 + span: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 + - file_id: 0 + span: + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 22 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 121 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__local_variable_used_in_import_call.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__local_variable_used_in_import_call.snap index 6e95572..b073241 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__local_variable_used_in_import_call.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__local_variable_used_in_import_call.snap @@ -26,217 +26,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 19 + - 19 + - 19 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 21 + - 21 + - 21 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 23 + - 23 + - 23 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 25 + - 25 + - 25 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 27 + - 27 + - 27 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 29 + - 29 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 31 + - 31 + - 31 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 33 + - 33 + - 33 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 35 + - 35 + - 35 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 37 + - 37 + - 37 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 39 + - 39 + - 39 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 41 + - 41 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 20 - mutable: false + memory: 44 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 22 + trait_index: 12 + assoc_name: 62 + base: 46 - Function: signature: items: - - 20 - - 22 - - 25 + - 44 + - 46 + - 49 params_count: 2 - Function: signature: items: - - 20 - - 22 + - 44 + - 46 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 19 + trait_index: 14 + assoc_name: 61 + base: 43 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 28 + trait_index: 12 + assoc_name: 62 + base: 52 - Function: signature: items: - - 19 - - 28 - - 29 + - 43 + - 52 + - 53 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 31 + trait_index: 14 + assoc_name: 61 + base: 55 - Function: signature: items: - - 31 - - 32 + - 55 + - 56 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 35 - memory: 34 - mutable: false + of: 59 + memory: 58 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 34 + trait_index: 14 + assoc_name: 61 + base: 58 - Function: signature: items: - - 36 - - 37 + - 60 + - 61 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 40 - memory: 39 - mutable: false + of: 64 + memory: 63 + ownership: Shared - Pointer: - to: 40 - memory: 39 - mutable: false + to: 64 + memory: 63 + ownership: Shared - Function: signature: items: - - 41 - - 42 + - 65 + - 66 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 45 - memory: 44 - mutable: false + to: 69 + memory: 68 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 44 + trait_index: 14 + assoc_name: 61 + base: 68 - Slice: - of: 45 - memory: 44 - mutable: false + of: 69 + memory: 68 + ownership: Shared - Function: signature: items: - - 46 - - 47 - - 48 + - 70 + - 71 + - 72 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 50 + trait_index: 14 + assoc_name: 61 + base: 74 - Function: signature: items: - - 51 + - 75 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 53 + trait_index: 14 + assoc_name: 61 + base: 77 - Function: signature: items: - - 54 + - 78 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 56 - mutable: true + memory: 80 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 56 + trait_index: 14 + assoc_name: 61 + base: 80 - Function: signature: items: - - 57 + - 81 - 6 - - 58 + - 82 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 61 - mutable: true + memory: 85 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 63 - mutable: false + memory: 87 + ownership: Shared - Function: signature: items: - - 62 - - 64 - - 60 + - 86 + - 88 + - 84 - 2 params_count: 3 - Function: @@ -269,6 +399,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -377,14 +561,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 89 + trait_index: 14 + assoc_name: 61 + base: 132 - TypeParam: owner: ImplBlock: 2 @@ -392,248 +647,263 @@ types: - Struct: struct_index: 0 args: - - 91 + - 134 - Function: signature: items: - - 92 + - 135 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 91 + trait_index: 14 + assoc_name: 61 + base: 134 - Function: signature: items: - - 94 - - 92 + - 137 + - 135 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 96 + trait_index: 15 + assoc_name: 57 + base: 139 - Pointer: - to: 96 - memory: 97 - mutable: true + to: 139 + memory: 140 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 99 - memory: 97 - mutable: true + to: 142 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 99 - - 100 + - 141 + - 142 + - 143 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 97 + trait_index: 14 + assoc_name: 61 + base: 140 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 103 - memory: 97 - mutable: true + of: 146 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 102 - - 104 + - 141 + - 145 + - 147 params_count: 2 - Struct: struct_index: 0 args: - - 97 + - 140 - Pointer: to: 6 - memory: 97 - mutable: true + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 106 - - 107 + - 141 + - 149 + - 150 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 110 - memory: 109 - mutable: false + to: 153 + memory: 152 + ownership: Shared - Function: signature: items: - - 111 + - 154 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 114 - memory: 113 - mutable: true + to: 157 + memory: 156 + ownership: Exclusive - Function: signature: items: - - 115 + - 158 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 118 - memory: 117 - mutable: false + to: 161 + memory: 160 + ownership: Shared - Function: signature: items: - - 119 + - 162 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 122 - memory: 121 - mutable: false + to: 165 + memory: 164 + ownership: Shared - Pointer: - to: 122 - memory: 121 - mutable: true + to: 165 + memory: 164 + ownership: Exclusive - Function: signature: items: - - 123 - - 124 + - 166 + - 167 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 127 - memory: 126 - mutable: false + to: 170 + memory: 169 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 126 + trait_index: 14 + assoc_name: 61 + base: 169 - Function: signature: items: - - 128 - - 129 - - 128 + - 171 + - 172 + - 171 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 132 - memory: 131 - mutable: false + to: 175 + memory: 174 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 131 + trait_index: 14 + assoc_name: 61 + base: 174 - Function: signature: items: - - 133 - - 134 - - 133 + - 176 + - 177 + - 176 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 137 - memory: 136 - mutable: true + to: 180 + memory: 179 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 136 + trait_index: 14 + assoc_name: 61 + base: 179 - Function: signature: items: - - 138 - - 139 - - 138 + - 181 + - 182 + - 181 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 142 - memory: 141 - mutable: true + to: 185 + memory: 184 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 141 + trait_index: 14 + assoc_name: 61 + base: 184 - Function: signature: items: - - 143 - - 144 - - 143 + - 186 + - 187 + - 186 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 189 + - Function: + signature: + items: + - 190 + - 190 + - 190 params_count: 2 - TypeParam: owner: @@ -644,28 +914,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 147 - memory: 146 - mutable: false + of: 193 + memory: 192 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 146 + trait_index: 14 + assoc_name: 61 + base: 192 - Function: signature: items: - - 148 - - 149 + - 194 + - 195 params_count: 1 - Pointer: - to: 147 - memory: 146 - mutable: false + to: 193 + memory: 192 + ownership: Shared - Function: signature: items: - - 148 - - 151 + - 194 + - 197 params_count: 1 - Function: signature: @@ -692,110 +962,236 @@ types: - 2 params_count: 0 - FunctionItem: - id: 1 - type_args: - - 1 + id: 58 + type_args: [] - FunctionItem: - id: 2 - type_args: + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 + type_args: + - 1 + - FunctionItem: + id: 39 + type_args: - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 159 + - 247 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 159 + - 247 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 162 + - 250 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 162 + - 250 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 99 + - 142 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 103 - memory: 97 - mutable: false + to: 146 + memory: 140 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 103 + - 146 - Slice: - of: 103 - memory: 97 - mutable: false + of: 146 + memory: 140 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 117 + trait_index: 14 + assoc_name: 61 + base: 160 - FunctionItem: - id: 6 + id: 43 type_args: - - 127 - - 126 + - 170 + - 169 - FunctionItem: - id: 6 + id: 43 type_args: - - 132 - - 131 + - 175 + - 174 - FunctionItem: - id: 6 + id: 43 type_args: - - 137 - - 136 + - 180 + - 179 - FunctionItem: - id: 6 + id: 43 type_args: - - 142 - - 141 + - 185 + - 184 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 146 - mutable: false + memory: 192 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 - Namespace: namespace_idx: 2 - FunctionItem: - id: 106 + id: 402 type_args: [] diagnostics: - severity: Error @@ -811,8166 +1207,29066 @@ diagnostics: notes: - "declare a memory in this module: `memory : Memory where { Size = u32 };`" functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 30 + signature_index: 54 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 19 + inner: 43 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 28 + inner: 52 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 29 + inner: 53 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 33 + signature_index: 57 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 31 + inner: 55 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 32 + inner: 56 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 38 + signature_index: 62 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 36 + inner: 60 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 37 + inner: 61 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 43 + signature_index: 67 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 41 + inner: 65 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 42 + inner: 66 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 49 + signature_index: 73 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 46 + inner: 70 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 47 + inner: 71 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 48 + inner: 72 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 52 + signature_index: 76 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 51 + inner: 75 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 55 + signature_index: 79 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 54 + inner: 78 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 59 + signature_index: 83 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 57 + inner: 81 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 58 + inner: 82 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 65 + signature_index: 89 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 62 + inner: 86 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 64 + inner: 88 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 60 + inner: 84 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 93 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 93 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 97 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 + span: + start: 3058 + end: 3059 + ty: + inner: 11 span: - start: 1813 - end: 1816 + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1863 - end: 1868 + start: 3103 + end: 3104 ty: - inner: 12 + inner: 13 + span: + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 + span: + start: 3111 + end: 3112 + ty: + inner: 13 span: - start: 1870 - end: 1873 + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 + start: 3159 + end: 3162 + - mut_span: ~ + name: + inner: 101 + span: + start: 3164 + end: 3165 + ty: + inner: 14 + span: + start: 3167 + end: 3170 result: - inner: 11 + inner: 14 span: - start: 1933 - end: 1936 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 30 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1952 - end: 1955 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 56 + inner: 104 span: - start: 1959 - end: 1972 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1973 - end: 1978 + start: 3209 + end: 3210 ty: - inner: 14 + inner: 15 + span: + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 + ty: + inner: 15 span: - start: 1980 - end: 1983 + start: 3220 + end: 3223 result: - inner: 10 + inner: 15 span: - start: 1988 - end: 1991 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 31 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 81 + signature_index: 97 name: - inner: 57 + inner: 105 span: - start: 2014 - end: 2027 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 + span: + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 + span: + start: 3270 + end: 3271 + ty: + inner: 11 span: - start: 2035 - end: 2038 + start: 3273 + end: 3276 result: inner: 11 span: - start: 2043 - end: 2046 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 32 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 98 name: - inner: 58 + inner: 106 span: - start: 2069 - end: 2082 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3315 + end: 3316 ty: - inner: 15 + inner: 13 + span: + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 span: - start: 2090 - end: 2093 + start: 3326 + end: 3329 result: - inner: 10 + inner: 13 span: - start: 2098 - end: 2101 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 33 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 99 name: - inner: 59 + inner: 107 span: - start: 2124 - end: 2137 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2145 - end: 2148 - result: - inner: 13 - span: - start: 2153 - end: 2156 - accesses: [] + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 + result: + inner: 14 + span: + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 34 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 100 name: - inner: 60 + inner: 108 span: - start: 2179 - end: 2192 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3421 + end: 3422 ty: - inner: 14 + inner: 15 span: - start: 2200 - end: 2203 + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 + span: + start: 3429 + end: 3430 + ty: + inner: 15 + span: + start: 3432 + end: 3435 result: - inner: 12 + inner: 15 span: - start: 2208 - end: 2211 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 35 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 97 name: - inner: 61 + inner: 109 span: - start: 2234 - end: 2247 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2248 - end: 2253 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 span: - start: 2255 - end: 2258 + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 + span: + start: 3482 + end: 3483 + ty: + inner: 11 + span: + start: 3485 + end: 3488 result: - inner: 13 + inner: 11 span: - start: 2263 - end: 2266 - accesses: [] + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 36 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 98 name: - inner: 62 + inner: 110 span: - start: 2289 - end: 2302 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3527 + end: 3528 ty: - inner: 15 + inner: 13 span: - start: 2310 - end: 2313 + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 + span: + start: 3535 + end: 3536 + ty: + inner: 13 + span: + start: 3538 + end: 3541 result: - inner: 12 + inner: 13 span: - start: 2318 - end: 2321 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 37 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 99 name: - inner: 63 + inner: 111 span: - start: 2344 - end: 2359 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3580 + end: 3581 + ty: + inner: 14 + span: + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 + span: + start: 3588 + end: 3589 ty: inner: 14 span: - start: 2367 - end: 2370 + start: 3591 + end: 3594 result: - inner: 15 + inner: 14 span: - start: 2375 - end: 2378 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 38 + - id: 75 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3618 + end: 3621 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 100 name: - inner: 64 + inner: 112 span: - start: 2401 - end: 2415 + start: 3625 + end: 3632 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 span: - start: 2416 - end: 2421 + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 + span: + start: 3641 + end: 3642 ty: inner: 15 span: - start: 2423 - end: 2426 + start: 3644 + end: 3647 result: - inner: 14 + inner: 15 span: - start: 2431 - end: 2434 - accesses: [] + start: 3652 + end: 3655 + accesses: + - file_id: 0 + span: + start: 12438 + end: 12445 attributes: - Intrinsic body: ~ - - id: 80 + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 112 + signature_index: 97 name: - inner: 93 + inner: 113 span: - start: 4588 - end: 4592 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 111 + inner: 11 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 111 - expected_type: 111 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 111 - span: - start: 4632 - end: 4633 - ty: 111 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 116 + signature_index: 101 name: - inner: 94 - span: - start: 4671 - end: 4679 - params: [] - result: - inner: 115 + inner: 114 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 115 - expected_type: 115 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 115 - span: - start: 4723 - end: 4724 - ty: 115 + start: 3731 + end: 3738 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3739 + end: 3740 + ty: + inner: 10 + span: + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 + result: + inner: 10 + span: + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3777 + end: 3780 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 120 + signature_index: 98 name: - inner: 95 + inner: 115 span: - start: 4762 - end: 4769 + start: 3784 + end: 3791 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3792 + end: 3793 + ty: + inner: 13 + span: + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 span: - start: 4786 - end: 4789 + start: 3800 + end: 3801 ty: - inner: 119 + inner: 13 span: - start: 4791 - end: 4798 + start: 3803 + end: 3806 result: - inner: 16 + inner: 13 span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 119 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 171 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 171 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3811 + end: 3814 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 - span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: - inner: 13 - span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 125 + signature_index: 102 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 123 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 124 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 123 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 124 - expected_type: 124 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 124 - span: - start: 4936 - end: 4939 - ty: 124 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 - span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 - span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3883 + end: 3886 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 130 + signature_index: 99 name: - inner: 98 + inner: 117 span: - start: 4977 - end: 4980 + start: 3890 + end: 3897 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3898 + end: 3899 ty: - inner: 128 + inner: 14 span: - start: 5002 - end: 5009 + start: 3901 + end: 3904 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3906 + end: 3907 ty: - inner: 129 + inner: 14 span: - start: 5018 - end: 5027 + start: 3909 + end: 3912 result: - inner: 128 + inner: 14 span: - start: 5032 - end: 5039 - accesses: [] + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 128 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 128 - expected_type: 128 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 129 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 129 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 127 - - 126 - arguments: [] - ty: 129 - span: - start: 5078 - end: 5097 - ty: 129 - span: - start: 5070 - end: 5097 - ty: 128 - span: - start: 5051 - end: 5097 - ty: 128 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 81 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 - span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 - span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 135 + signature_index: 100 name: - inner: 99 + inner: 118 span: - start: 5136 - end: 5139 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 3951 + end: 3952 ty: - inner: 133 + inner: 15 span: - start: 5161 - end: 5168 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 3959 + end: 3960 ty: - inner: 134 + inner: 15 span: - start: 5177 - end: 5186 + start: 3962 + end: 3965 result: - inner: 133 + inner: 15 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 133 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 133 - expected_type: 133 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 134 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 134 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 132 - - 131 - arguments: [] - ty: 134 - span: - start: 5237 - end: 5256 - ty: 134 - span: - start: 5229 - end: 5256 - ty: 133 - span: - start: 5210 - end: 5256 - ty: 133 + start: 3970 + end: 3973 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 12539 + end: 12546 + attributes: + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 3989 + end: 3992 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 119 + span: + start: 3996 + end: 4003 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: - inner: 13 + start: 4004 + end: 4005 + ty: + inner: 11 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4007 + end: 4010 + - mut_span: ~ + name: + inner: 101 + span: + start: 4012 + end: 4013 + ty: + inner: 11 + span: + start: 4015 + end: 4018 + result: + inner: 11 + span: + start: 4023 + end: 4026 + accesses: + - file_id: 0 + span: + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4042 + end: 4045 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 140 + signature_index: 101 name: - inner: 100 + inner: 120 span: - start: 5295 - end: 5302 + start: 4049 + end: 4056 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4057 + end: 4058 ty: - inner: 138 + inner: 10 span: - start: 5324 - end: 5335 + start: 4060 + end: 4063 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4065 + end: 4066 ty: - inner: 139 + inner: 10 span: - start: 5344 - end: 5353 + start: 4068 + end: 4071 result: - inner: 138 + inner: 10 span: - start: 5358 - end: 5369 - accesses: [] + start: 4076 + end: 4079 + accesses: + - file_id: 0 + span: + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 138 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 138 - expected_type: 138 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 139 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 139 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 137 - - 136 - arguments: [] - ty: 139 - span: - start: 5408 - end: 5427 - ty: 139 - span: - start: 5400 - end: 5427 - ty: 138 - span: - start: 5381 - end: 5427 - ty: 138 - span: - start: 5370 - end: 5439 - - id: 87 + - Intrinsic + body: ~ + - id: 84 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 + start: 4095 + end: 4098 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 121 + span: + start: 4102 + end: 4109 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: + start: 4110 + end: 4111 + ty: inner: 13 span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4113 + end: 4116 + - mut_span: ~ + name: + inner: 101 + span: + start: 4118 + end: 4119 + ty: + inner: 13 + span: + start: 4121 + end: 4124 + result: + inner: 13 + span: + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 + attributes: + - Intrinsic + body: ~ + - id: 85 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 145 + signature_index: 102 name: - inner: 101 + inner: 122 span: - start: 5466 - end: 5473 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4163 + end: 4164 ty: - inner: 143 + inner: 12 span: - start: 5495 - end: 5506 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4171 + end: 4172 ty: - inner: 144 + inner: 12 span: - start: 5515 - end: 5524 + start: 4174 + end: 4177 result: - inner: 143 + inner: 12 span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 143 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 143 - expected_type: 143 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 144 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 144 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 142 - - 141 - arguments: [] - ty: 144 - span: - start: 5579 - end: 5598 - ty: 144 - span: - start: 5571 - end: 5598 - ty: 143 - span: - start: 5552 - end: 5598 - ty: 143 + start: 4182 + end: 4185 + accesses: + - file_id: 0 span: - start: 5541 - end: 5610 - - id: 107 - file_id: 1 - namespace: ~ + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 + file_id: 0 + namespace: 0 parent: ~ - pub_span: ~ + pub_span: + start: 4201 + end: 4204 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 156 + signature_index: 97 name: - inner: 120 + inner: 123 span: - start: 80 - end: 84 - params: [] - result: ~ + start: 4208 + end: 4218 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4219 + end: 4220 + ty: + inner: 11 + span: + start: 4222 + end: 4225 + - mut_span: ~ + name: + inner: 101 + span: + start: 4227 + end: 4228 + ty: + inner: 11 + span: + start: 4230 + end: 4233 + result: + inner: 11 + span: + start: 4238 + end: 4241 accesses: - - file_id: 1 + - file_id: 0 span: - start: 163 - end: 167 - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 87 - end: 152 - locals: - - name: - inner: 121 - span: - start: 99 - end: 105 - ty: 0 - mut_span: ~ - accesses: - - span: - start: 142 - end: 148 - kind: Read - inferred_type: 2 - expected_type: 2 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 121 - span: - start: 99 - end: 105 - scope_index: 0 - local_index: 0 - value: - kind: Error - ty: 0 - span: - start: 108 - end: 120 - ty: 2 - span: - start: 93 - end: 120 - - kind: - Call: - callee: - kind: - NamespaceAccess: - namespace: - inner: 179 - span: - start: 126 - end: 133 - member: - kind: - Function: - id: 106 - ty: 180 - span: - start: 135 - end: 138 - ty: 180 - span: - start: 126 - end: 138 - arguments: - - kind: - Int: - value: 0 - ty: 10 - span: - start: 139 - end: 140 - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 0 - span: - start: 142 - end: 148 - ty: 2 - span: - start: 126 - end: 149 - result: ~ - ty: 2 + start: 6924 + end: 6934 + - file_id: 0 span: - start: 87 - end: 152 - - id: 68 + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4257 + end: 4260 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 26 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 79 + inner: 124 span: - start: 3404 - end: 3408 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4275 + end: 4276 ty: - inner: 20 + inner: 13 span: - start: 3409 - end: 3413 + start: 4278 + end: 4281 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4283 + end: 4284 ty: - inner: 22 + inner: 13 span: - start: 3422 - end: 3432 + start: 4286 + end: 4289 result: - inner: 25 + inner: 13 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 22 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 25 - expected_type: 25 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 22 - span: - start: 3484 - end: 3489 - ty: 25 - span: - start: 3466 - end: 3490 - ty: 25 + start: 4294 + end: 4297 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 9522 + end: 9532 + - file_id: 0 + span: + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4313 + end: 4316 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 81 + inner: 125 span: - start: 3519 - end: 3523 + start: 4320 + end: 4329 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4330 + end: 4331 ty: - inner: 20 + inner: 11 span: - start: 3524 - end: 3528 + start: 4333 + end: 4336 + - mut_span: ~ + name: + inner: 101 + span: + start: 4338 + end: 4339 + ty: + inner: 11 + span: + start: 4341 + end: 4344 result: - inner: 22 + inner: 11 span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 22 - expected_type: 22 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3566 - end: 3570 - ty: 22 - span: - start: 3554 - end: 3571 - ty: 22 + start: 4349 + end: 4352 + accesses: + - file_id: 0 span: - start: 3544 - end: 3577 - - id: 72 + start: 7032 + end: 7041 + - file_id: 0 + span: + start: 8300 + end: 8309 + - file_id: 0 + span: + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 + attributes: + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3718 - end: 3721 - type_params: - - name: + start: 4368 + end: 4371 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 126 + span: + start: 4375 + end: 4384 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4385 + end: 4386 + ty: inner: 13 span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 93 + start: 4388 + end: 4391 + - mut_span: ~ + name: + inner: 101 + span: + start: 4393 + end: 4394 + ty: + inner: 13 + span: + start: 4396 + end: 4399 + result: + inner: 13 + span: + start: 4404 + end: 4407 + accesses: + - file_id: 0 + span: + start: 9630 + end: 9639 + - file_id: 0 + span: + start: 10898 + end: 10907 + attributes: + - Intrinsic + body: ~ + - id: 90 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4423 + end: 4426 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 84 + inner: 127 span: - start: 3725 - end: 3727 - params: [] + start: 4430 + end: 4440 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4441 + end: 4442 + ty: + inner: 11 + span: + start: 4444 + end: 4447 + - mut_span: ~ + name: + inner: 101 + span: + start: 4449 + end: 4450 + ty: + inner: 11 + span: + start: 4452 + end: 4455 result: - inner: 92 + inner: 11 span: - start: 3736 - end: 3740 + start: 4460 + end: 4463 accesses: - file_id: 0 span: - start: 4226 - end: 4228 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 159 - - 91 - arguments: [] - ty: 94 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 159 - - 91 - arguments: [] - ty: 94 - span: - start: 3788 - end: 3803 - ty: 92 - span: - start: 3751 - end: 3805 - ty: 92 + start: 7141 + end: 7151 + - file_id: 0 span: - start: 3741 - end: 3811 - - id: 73 + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 + attributes: + - Intrinsic + body: ~ + - id: 91 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 95 + start: 4479 + end: 4482 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 85 + inner: 128 span: - start: 3838 - end: 3843 + start: 4486 + end: 4496 params: - mut_span: ~ name: - inner: 86 + inner: 100 span: - start: 3847 - end: 3852 + start: 4497 + end: 4498 ty: - inner: 94 + inner: 13 + span: + start: 4500 + end: 4503 + - mut_span: ~ + name: + inner: 101 span: - start: 3854 - end: 3863 + start: 4505 + end: 4506 + ty: + inner: 13 + span: + start: 4508 + end: 4511 result: - inner: 92 + inner: 13 span: - start: 3868 - end: 3872 + start: 4516 + end: 4519 accesses: - file_id: 0 span: - start: 4470 - end: 4475 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 94 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 162 - - 91 - arguments: [] - ty: 94 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 94 - span: - start: 3938 - end: 3943 - ty: 94 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 162 - - 91 - arguments: [] - ty: 94 - span: - start: 3898 - end: 3913 - ty: 92 - span: - start: 3883 - end: 3945 - ty: 92 + start: 9739 + end: 9749 + - file_id: 0 span: - start: 3873 - end: 3951 - - id: 76 + start: 11040 + end: 11050 + attributes: + - Intrinsic + body: ~ + - id: 92 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4535 + end: 4538 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 108 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 88 + inner: 129 span: - start: 4007 - end: 4014 + start: 4542 + end: 4549 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4550 + end: 4551 ty: - inner: 98 + inner: 11 span: - start: 4021 - end: 4041 + start: 4553 + end: 4556 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4558 + end: 4559 ty: - inner: 106 + inner: 11 span: - start: 4051 - end: 4068 + start: 4561 + end: 4564 result: - inner: 107 + inner: 11 span: - start: 4073 - end: 4091 + start: 4569 + end: 4572 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 7245 + end: 7252 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 93 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 101 + parent: ~ + pub_span: + start: 4588 + end: 4591 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 90 + inner: 130 span: - start: 4115 - end: 4120 + start: 4595 + end: 4602 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4603 + end: 4604 ty: - inner: 98 + inner: 13 span: - start: 4130 - end: 4150 + start: 4606 + end: 4609 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4611 + end: 4612 ty: - inner: 99 + inner: 13 span: - start: 4159 - end: 4160 + start: 4614 + end: 4617 result: - inner: 100 + inner: 13 span: - start: 4165 - end: 4182 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 100 - expected_type: 100 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 97 - - 99 - arguments: [] - ty: 106 - span: - start: 4218 - end: 4235 - ty: 100 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4267 - end: 4270 - ty: 99 - memory: 97 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 99 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4290 - end: 4293 - ty: 100 + start: 4622 + end: 4625 + accesses: + - file_id: 0 span: - start: 4183 - end: 4299 - - id: 78 + start: 9843 + end: 9850 + - file_id: 0 + span: + start: 11177 + end: 11184 + attributes: + - Intrinsic + body: ~ + - id: 94 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 105 + parent: ~ + pub_span: + start: 4641 + end: 4644 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 92 + inner: 131 span: - start: 4322 - end: 4333 + start: 4648 + end: 4655 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4337 - end: 4341 + start: 4656 + end: 4657 ty: - inner: 98 + inner: 11 span: - start: 4343 - end: 4363 + start: 4659 + end: 4662 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4664 + end: 4665 ty: - inner: 102 + inner: 11 span: - start: 4370 - end: 4385 + start: 4667 + end: 4670 result: - inner: 104 + inner: 11 span: - start: 4390 - end: 4408 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 102 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 104 - expected_type: 104 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 97 - - 103 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 97 - - 103 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4481 - end: 4484 - ty: 106 - span: - start: 4462 - end: 4485 - ty: 168 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4517 - end: 4520 - ty: 104 - span: - start: 4419 - end: 4531 - ty: 104 + start: 4675 + end: 4678 + accesses: + - file_id: 0 span: - start: 4409 - end: 4542 - - id: 88 + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 + attributes: + - Intrinsic + body: ~ + - id: 95 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4694 + end: 4697 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 150 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 101 name: - inner: 18 + inner: 132 span: - start: 5671 - end: 5674 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4709 + end: 4710 + ty: + inner: 10 + span: + start: 4712 + end: 4715 + - mut_span: ~ + name: + inner: 101 span: - start: 5675 - end: 5679 + start: 4717 + end: 4718 ty: - inner: 148 + inner: 10 span: - start: 5675 - end: 5679 + start: 4720 + end: 4723 result: - inner: 149 + inner: 10 span: - start: 5684 - end: 5693 - accesses: [] + start: 4728 + end: 4731 + accesses: + - file_id: 0 + span: + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 149 - expected_type: 149 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5714 - end: 5718 - ty: 149 - span: - start: 5704 - end: 5719 - ty: 149 - span: - start: 5694 - end: 5725 - - id: 89 + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5745 - end: 5748 + start: 4747 + end: 4750 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 152 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 91 + inner: 133 span: - start: 5752 - end: 5755 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4762 + end: 4763 + ty: + inner: 13 span: - start: 5756 - end: 5760 + start: 4765 + end: 4768 + - mut_span: ~ + name: + inner: 101 + span: + start: 4770 + end: 4771 ty: - inner: 148 + inner: 13 span: - start: 5756 - end: 5760 + start: 4773 + end: 4776 result: - inner: 151 + inner: 13 span: - start: 5765 - end: 5772 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 151 - expected_type: 151 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5793 - end: 5797 - ty: 151 - span: - start: 5783 - end: 5798 - ty: 151 + start: 4781 + end: 4784 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 9944 + end: 9951 + attributes: + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 102 name: - inner: 104 + inner: 134 span: - start: 5887 - end: 5905 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 5906 - end: 5910 + start: 4815 + end: 4816 ty: - inner: 17 + inner: 12 + span: + start: 4818 + end: 4821 + - mut_span: ~ + name: + inner: 101 + span: + start: 4823 + end: 4824 + ty: + inner: 12 span: - start: 5906 - end: 5910 + start: 4826 + end: 4829 result: - inner: 17 + inner: 12 span: - start: 5915 - end: 5919 - accesses: [] + start: 4834 + end: 4837 + accesses: + - file_id: 0 + span: + start: 11303 + end: 11310 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 + - Intrinsic + body: ~ + - id: 98 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4853 + end: 4856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 135 + span: + start: 4860 + end: 4870 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 4871 + end: 4876 + ty: + inner: 11 + span: + start: 4878 + end: 4881 + result: + inner: 11 + span: + start: 4886 + end: 4889 + accesses: + - file_id: 0 span: - start: 5920 - end: 6063 - - id: 93 + start: 7442 + end: 7452 + - file_id: 0 + span: + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 + attributes: + - Intrinsic + body: ~ + - id: 99 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 4905 + end: 4908 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 96 name: - inner: 106 + inner: 136 span: - start: 6090 - end: 6108 + start: 4912 + end: 4922 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6109 - end: 6113 + start: 4923 + end: 4928 ty: - inner: 17 + inner: 13 span: - start: 6109 - end: 6113 + start: 4930 + end: 4933 result: - inner: 17 + inner: 13 span: - start: 6118 - end: 6122 - accesses: [] + start: 4938 + end: 4941 + accesses: + - file_id: 0 + span: + start: 10040 + end: 10050 + - file_id: 0 + span: + start: 11407 + end: 11417 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 - span: - start: 6123 - end: 6266 - - id: 94 + - Intrinsic + body: ~ + - id: 100 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 4957 + end: 4960 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 103 name: - inner: 108 + inner: 137 span: - start: 6293 - end: 6301 + start: 4964 + end: 4979 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6302 - end: 6306 + start: 4980 + end: 4985 ty: - inner: 17 + inner: 11 span: - start: 6302 - end: 6306 + start: 4987 + end: 4990 result: - inner: 16 + inner: 14 span: - start: 6311 - end: 6315 + start: 4995 + end: 4998 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 - span: - start: 6316 - end: 6353 - - id: 95 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 104 name: - inner: 107 + inner: 138 span: - start: 6380 - end: 6398 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6399 - end: 6403 + start: 5044 + end: 5047 result: - inner: 16 + inner: 14 span: - start: 6408 - end: 6412 - accesses: - - file_id: 0 - span: - start: 6141 - end: 6159 + start: 5052 + end: 5055 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 - span: - start: 6413 - end: 6455 - - id: 96 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 105 name: - inner: 105 + inner: 139 span: - start: 6482 - end: 6500 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6501 - end: 6505 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6510 - end: 6514 - accesses: - - file_id: 0 - span: - start: 5938 - end: 5956 + start: 5109 + end: 5112 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 - span: - start: 6515 - end: 6557 - - id: 97 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 106 name: - inner: 109 + inner: 140 span: - start: 6584 - end: 6603 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 6604 - end: 6608 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 6613 - end: 6617 + start: 5166 + end: 5169 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 107 name: - inner: 110 + inner: 141 span: - start: 6720 - end: 6734 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 6735 - end: 6739 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 6744 - end: 6748 + start: 5223 + end: 5226 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 108 name: - inner: 111 + inner: 142 span: - start: 6818 - end: 6839 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 6840 - end: 6844 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 6849 - end: 6853 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 109 name: - inner: 112 + inner: 143 span: - start: 7011 - end: 7030 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 7031 - end: 7035 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 7040 - end: 7044 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 110 name: - inner: 113 + inner: 144 span: - start: 7213 - end: 7229 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 7230 - end: 7234 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 7239 - end: 7243 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 108 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5413 + end: 5416 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 111 name: - inner: 114 + inner: 145 span: - start: 7326 - end: 7343 + start: 5420 + end: 5433 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5434 + end: 5439 ty: - inner: 17 + inner: 14 span: - start: 7344 - end: 7348 + start: 5441 + end: 5444 result: - inner: 16 + inner: 11 span: - start: 7353 - end: 7357 + start: 5449 + end: 5452 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 109 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5468 + end: 5471 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 112 name: - inner: 115 + inner: 146 span: - start: 7515 - end: 7535 + start: 5475 + end: 5488 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5489 + end: 5494 ty: - inner: 17 + inner: 14 span: - start: 7536 - end: 7540 + start: 5496 + end: 5499 result: - inner: 16 + inner: 10 span: - start: 7545 - end: 7549 + start: 5504 + end: 5507 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7687 - end: 7688 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 - span: - start: 7560 - end: 7674 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 - span: - start: 7690 - end: 7716 - ty: 16 - span: - start: 7560 - end: 7717 - ty: 16 - span: - start: 7550 - end: 7723 - - id: 104 + - Intrinsic + body: ~ + - id: 110 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7743 - end: 7746 + start: 5523 + end: 5526 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 113 name: - inner: 116 + inner: 147 span: - start: 7750 - end: 7766 + start: 5530 + end: 5543 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7767 - end: 7771 + start: 5544 + end: 5549 ty: - inner: 17 + inner: 15 span: - start: 7767 - end: 7771 + start: 5551 + end: 5554 result: - inner: 16 + inner: 11 span: - start: 7776 - end: 7780 + start: 5559 + end: 5562 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7781 - end: 7823 - locals: - - name: - inner: 80 - span: - start: 7767 - end: 7771 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7791 - end: 7795 - kind: Read - - span: - start: 7806 - end: 7810 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 7803 - end: 7805 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7796 - end: 7798 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7791 - end: 7795 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7799 - end: 7802 - ty: 16 - span: - start: 7791 - end: 7802 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7811 - end: 7813 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7806 - end: 7810 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7814 - end: 7817 - ty: 16 - span: - start: 7806 - end: 7817 - ty: 16 - span: - start: 7791 - end: 7817 - ty: 16 - span: - start: 7781 - end: 7823 - - id: 106 - file_id: 1 - namespace: 2 + - Intrinsic + body: ~ + - id: 111 + file_id: 0 + namespace: 0 parent: ~ - pub_span: ~ + pub_span: + start: 5578 + end: 5581 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 114 name: - inner: 119 + inner: 148 span: - start: 49 - end: 52 + start: 5585 + end: 5598 params: - mut_span: ~ name: - inner: 91 + inner: 82 span: - start: 53 - end: 56 + start: 5599 + end: 5604 ty: - inner: 10 + inner: 15 span: - start: 58 - end: 61 + start: 5606 + end: 5609 + result: + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 + name: + inner: 149 + span: + start: 5640 + end: 5653 + params: - mut_span: ~ name: - inner: 18 + inner: 82 span: - start: 63 - end: 66 + start: 5654 + end: 5659 ty: - inner: 10 + inner: 14 span: - start: 68 - end: 71 - result: ~ - accesses: - - file_id: 1 - span: - start: 135 - end: 138 - attributes: [] + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic body: ~ -globals: [] -memories: [] -namespaces: - - name: 0 + - id: 113 + file_id: 0 + namespace: 0 parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 + name: + inner: 150 + span: + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 + name: + inner: 151 + span: + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5764 + end: 5769 + ty: + inner: 15 + span: + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 + name: + inner: 152 + span: + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5819 + end: 5824 + ty: + inner: 15 + span: + start: 5826 + end: 5829 + result: + inner: 12 + span: + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 153 + span: + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 + span: + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 154 + span: + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 + span: + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 155 + name: + inner: 178 + span: + start: 21343 + end: 21347 + params: [] + result: + inner: 154 + span: + start: 21369 + end: 21376 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21377 + end: 21399 + locals: [] + inferred_type: 154 + expected_type: 154 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 154 + span: + start: 21387 + end: 21388 + ty: 154 + span: + start: 21377 + end: 21399 + - id: 376 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 159 + name: + inner: 179 + span: + start: 21426 + end: 21434 + params: [] + result: + inner: 158 + span: + start: 21456 + end: 21463 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21464 + end: 21486 + locals: [] + inferred_type: 158 + expected_type: 158 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 158 + span: + start: 21474 + end: 21475 + ty: 158 + span: + start: 21464 + end: 21486 + - id: 377 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 163 + name: + inner: 180 + span: + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: + inner: 162 + span: + start: 21542 + end: 21549 + result: + inner: 16 + span: + start: 21554 + end: 21558 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21559 + end: 21596 + locals: + - name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: 162 + mut_span: ~ + accesses: + - span: + start: 21569 + end: 21572 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Eq + span: + start: 21586 + end: 21588 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 259 + span: + start: 21569 + end: 21572 + right: + kind: + Int: + value: 0 + ty: 259 + span: + start: 21589 + end: 21590 + ty: 16 + span: + start: 21569 + end: 21590 + ty: 16 + span: + start: 21559 + end: 21596 + - id: 378 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 168 + name: + inner: 181 + span: + start: 21623 + end: 21631 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: + inner: 166 + span: + start: 21653 + end: 21660 + result: + inner: 167 + span: + start: 21665 + end: 21672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21673 + end: 21697 + locals: + - name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: 166 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 167 + expected_type: 167 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 167 + span: + start: 21683 + end: 21686 + ty: 167 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 173 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 171 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 172 + span: + start: 21765 + end: 21774 + result: + inner: 171 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 171 + mut_span: ~ + accesses: + - span: + start: 21798 + end: 21801 + kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 172 + mut_span: ~ + accesses: + - span: + start: 21817 + end: 21822 + kind: Read + inferred_type: 171 + expected_type: 171 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 21815 + end: 21816 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 172 + span: + start: 21798 + end: 21801 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21823 + end: 21824 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 172 + span: + start: 21817 + end: 21822 + right: + kind: + GenericCall: + id: 43 + type_args: + - 170 + - 169 + arguments: [] + ty: 172 + span: + start: 21825 + end: 21844 + ty: 172 + span: + start: 21817 + end: 21844 + ty: 171 + span: + start: 21798 + end: 21844 + ty: 171 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 178 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 176 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 177 + span: + start: 21924 + end: 21933 + result: + inner: 176 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 176 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 176 + expected_type: 176 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 177 + span: + start: 21957 + end: 21960 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21982 + end: 21983 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 177 + span: + start: 21976 + end: 21981 + right: + kind: + GenericCall: + id: 43 + type_args: + - 175 + - 174 + arguments: [] + ty: 177 + span: + start: 21984 + end: 22003 + ty: 177 + span: + start: 21976 + end: 22003 + ty: 176 + span: + start: 21957 + end: 22003 + ty: 176 + span: + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22035 + end: 22038 + type_params: + - name: + inner: 57 + span: + start: 22050 + end: 22053 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22055 + end: 22061 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22071 + end: 22074 + - file_id: 0 + span: + start: 22087 + end: 22090 + - file_id: 0 + span: + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 + span: + start: 22160 + end: 22163 + - name: + inner: 65 + span: + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22077 + end: 22078 + - file_id: 0 + span: + start: 22107 + end: 22108 + - file_id: 0 + span: + start: 22157 + end: 22158 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 183 + name: + inner: 182 + span: + start: 22042 + end: 22049 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: + inner: 181 + span: + start: 22071 + end: 22078 + - mut_span: ~ + name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: + inner: 182 + span: + start: 22087 + end: 22096 + result: + inner: 181 + span: + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 181 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 181 + expected_type: 181 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 182 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 182 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 180 + - 179 + arguments: [] + ty: 182 + span: + start: 22147 + end: 22166 + ty: 182 + span: + start: 22139 + end: 22166 + ty: 181 + span: + start: 22120 + end: 22166 + ty: 181 + span: + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 + span: + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 + span: + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 188 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: + inner: 186 + span: + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: + inner: 187 + span: + start: 22250 + end: 22259 + result: + inner: 186 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 186 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 186 + expected_type: 186 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 187 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 187 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 185 + - 184 + arguments: [] + ty: 187 + span: + start: 22310 + end: 22329 + ty: 187 + span: + start: 22302 + end: 22329 + ty: 186 + span: + start: 22283 + end: 22329 + ty: 186 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 + span: + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 191 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: + inner: 190 + span: + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: + inner: 190 + span: + start: 22414 + end: 22423 + result: + inner: 190 + span: + start: 22428 + end: 22437 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 190 + expected_type: 190 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 190 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 190 + span: + start: 22469 + end: 22470 + ty: 190 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22503 + end: 22507 + ty: 190 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22512 + end: 22516 + ty: 190 + span: + start: 22511 + end: 22516 + ty: 190 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22567 + end: 22573 + ty: 190 + span: + start: 22438 + end: 22579 + - id: 403 + file_id: 1 + namespace: ~ + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 202 + name: + inner: 205 + span: + start: 80 + end: 84 + params: [] + result: ~ + accesses: + - file_id: 1 + span: + start: 163 + end: 167 + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 87 + end: 152 + locals: + - name: + inner: 206 + span: + start: 99 + end: 105 + ty: 0 + mut_span: ~ + accesses: + - span: + start: 142 + end: 148 + kind: Read + inferred_type: 2 + expected_type: 2 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 206 + span: + start: 99 + end: 105 + scope_index: 0 + local_index: 0 + value: + kind: Error + ty: 0 + span: + start: 108 + end: 120 + ty: 2 + span: + start: 93 + end: 120 + - kind: + Call: + callee: + kind: + NamespaceAccess: + namespace: + inner: 267 + span: + start: 126 + end: 133 + member: + kind: + Function: + id: 402 + ty: 268 + span: + start: 135 + end: 138 + ty: 268 + span: + start: 126 + end: 138 + arguments: + - kind: + Int: + value: 0 + ty: 10 + span: + start: 139 + end: 140 + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 0 + span: + start: 142 + end: 148 + ty: 2 + span: + start: 126 + end: 149 + result: ~ + ty: 2 + span: + start: 87 + end: 152 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 20 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 19 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 19 + span: + start: 425 + end: 429 + result: + inner: 19 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 22 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 21 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 21 + span: + start: 502 + end: 506 + result: + inner: 21 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 24 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 23 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 23 + span: + start: 579 + end: 583 + result: + inner: 23 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 26 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 25 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 25 + span: + start: 656 + end: 660 + result: + inner: 25 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 28 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 27 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 27 + span: + start: 733 + end: 737 + result: + inner: 27 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 30 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 29 + span: + start: 799 + end: 803 + result: + inner: 29 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 32 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 31 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 31 + span: + start: 885 + end: 889 + result: + inner: 31 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 34 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 33 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 33 + span: + start: 968 + end: 972 + result: + inner: 33 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 36 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 35 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 35 + span: + start: 1054 + end: 1058 + result: + inner: 35 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 38 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 37 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 37 + span: + start: 1131 + end: 1135 + result: + inner: 37 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 40 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 39 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 39 + span: + start: 1208 + end: 1212 + result: + inner: 39 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 42 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 41 + span: + start: 1283 + end: 1287 + result: + inner: 41 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 50 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 44 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 46 + span: + start: 20204 + end: 20214 + result: + inner: 49 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 46 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 49 + expected_type: 49 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 46 + span: + start: 20266 + end: 20271 + ty: 49 + span: + start: 20248 + end: 20272 + ty: 49 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 44 + span: + start: 20306 + end: 20310 + result: + inner: 46 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 46 + expected_type: 46 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20348 + end: 20352 + ty: 46 + span: + start: 20336 + end: 20353 + ty: 46 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 203 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 204 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 223 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 224 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 225 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 230 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 232 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 233 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 234 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 235 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 236 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 237 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 238 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 239 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 240 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 241 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 242 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 243 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 244 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 136 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 135 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 247 + - 134 + arguments: [] + ty: 137 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 247 + - 134 + arguments: [] + ty: 137 + span: + start: 20570 + end: 20585 + ty: 135 + span: + start: 20533 + end: 20587 + ty: 135 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 138 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 137 + span: + start: 20636 + end: 20645 + result: + inner: 135 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 137 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 250 + - 134 + arguments: [] + ty: 137 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 137 + span: + start: 20720 + end: 20725 + ty: 137 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 250 + - 134 + arguments: [] + ty: 137 + span: + start: 20680 + end: 20695 + ty: 135 + span: + start: 20665 + end: 20727 + ty: 135 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 151 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 141 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 149 + span: + start: 20829 + end: 20846 + result: + inner: 150 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 144 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 141 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 142 + span: + start: 20929 + end: 20930 + result: + inner: 143 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 143 + expected_type: 143 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 140 + - 142 + arguments: [] + ty: 149 + span: + start: 20984 + end: 21001 + ty: 143 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21029 + end: 21032 + ty: 142 + memory: 140 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 142 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21052 + end: 21055 + ty: 143 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 148 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 141 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 145 + span: + start: 21128 + end: 21143 + result: + inner: 147 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 145 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 147 + expected_type: 147 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 140 + - 146 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 140 + - 146 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21236 + end: 21239 + ty: 149 + span: + start: 21217 + end: 21240 + ty: 256 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21272 + end: 21275 + ty: 147 + span: + start: 21174 + end: 21286 + ty: 147 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 196 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 194 + span: + start: 22645 + end: 22649 + result: + inner: 195 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 195 + expected_type: 195 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22684 + end: 22688 + ty: 195 + span: + start: 22674 + end: 22689 + ty: 195 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 198 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 194 + span: + start: 22726 + end: 22730 + result: + inner: 197 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 197 + expected_type: 197 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22763 + end: 22767 + ty: 197 + span: + start: 22753 + end: 22768 + ty: 197 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 24773 + end: 24775 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24766 + end: 24768 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24761 + end: 24765 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24769 + end: 24772 + ty: 16 + span: + start: 24761 + end: 24772 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24781 + end: 24783 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24776 + end: 24780 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24784 + end: 24787 + ty: 16 + span: + start: 24776 + end: 24787 + ty: 16 + span: + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 + - id: 402 + file_id: 1 + namespace: 2 + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 204 + span: + start: 49 + end: 52 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 53 + end: 56 + ty: + inner: 10 + span: + start: 58 + end: 61 + - mut_span: ~ + name: + inner: 70 + span: + start: 63 + end: 66 + ty: + inner: 10 + span: + start: 68 + end: 71 + result: ~ + accesses: + - file_id: 1 + span: + start: 135 + end: 138 + attributes: [] + body: ~ +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: trait_index: 0 - assoc_name: 10 + ? - Type + - 23 + : Trait: + trait_index: 1 ? - Type - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 : TypeSet: typeset_index: 1 ? - Type - - 66 + - 158 : TypeSet: typeset_index: 0 ? - Type - - 70 + - 159 : Trait: - trait_index: 0 + trait_index: 12 ? - Type - - 71 + - 160 : Trait: - trait_index: 1 + trait_index: 13 ? - Type - - 72 + - 161 : TraitAssocType: - trait_index: 1 - assoc_name: 72 + trait_index: 13 + assoc_name: 161 ? - Type - - 82 + - 167 : Struct: struct_index: 0 ? - Type - - 87 + - 172 : Trait: - trait_index: 3 + trait_index: 15 ? - Type - - 91 + - 176 : Module: namespace_idx: 1 ? - Value - - 1 - : Const: - const_index: 0 + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 + ? - Value + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 + : Function: + func_index: 26 + ? - Value + - 102 + : Function: + func_index: 27 + ? - Value + - 103 + : Function: + func_index: 28 + ? - Value + - 104 + : Function: + func_index: 29 + ? - Value + - 105 + : Function: + func_index: 30 ? - Value - - 4 + - 106 : Function: - func_index: 0 + func_index: 31 ? - Value - - 11 + - 107 : Function: - func_index: 1 + func_index: 32 ? - Value - - 12 + - 108 : Function: - func_index: 2 + func_index: 33 ? - Value - - 15 + - 109 : Function: - func_index: 3 + func_index: 34 ? - Value - - 16 + - 110 : Function: - func_index: 4 + func_index: 35 ? - Value - - 19 + - 111 : Function: - func_index: 5 + func_index: 36 ? - Value - - 20 + - 112 : Function: - func_index: 6 + func_index: 37 ? - Value - - 21 + - 113 : Function: - func_index: 7 + func_index: 38 ? - Value - - 25 + - 114 : Function: - func_index: 8 + func_index: 39 ? - Value - - 30 + - 115 : Function: - func_index: 9 + func_index: 40 ? - Value - - 34 + - 116 : Function: - func_index: 10 + func_index: 41 ? - Value - - 36 + - 117 : Function: - func_index: 11 + func_index: 42 ? - Value - - 37 + - 118 : Function: - func_index: 12 + func_index: 43 ? - Value - - 39 + - 119 : Function: - func_index: 13 + func_index: 44 ? - Value - - 41 + - 120 : Function: - func_index: 14 + func_index: 45 ? - Value - - 42 + - 121 : Function: - func_index: 15 + func_index: 46 ? - Value - - 43 + - 122 : Function: - func_index: 16 + func_index: 47 ? - Value - - 44 + - 123 : Function: - func_index: 17 + func_index: 48 ? - Value - - 45 + - 124 : Function: - func_index: 18 + func_index: 49 ? - Value - - 46 + - 125 : Function: - func_index: 19 + func_index: 50 ? - Value - - 47 + - 126 : Function: - func_index: 20 + func_index: 51 ? - Value - - 48 + - 127 : Function: - func_index: 21 + func_index: 52 ? - Value - - 49 + - 128 : Function: - func_index: 22 + func_index: 53 ? - Value - - 50 + - 129 : Function: - func_index: 23 + func_index: 54 ? - Value - - 51 + - 130 : Function: - func_index: 24 + func_index: 55 ? - Value - - 52 + - 131 : Function: - func_index: 25 + func_index: 56 ? - Value - - 53 + - 132 : Function: - func_index: 26 + func_index: 57 ? - Value - - 54 + - 133 : Function: - func_index: 27 + func_index: 58 ? - Value - - 55 + - 134 : Function: - func_index: 28 + func_index: 59 ? - Value - - 56 + - 135 : Function: - func_index: 29 + func_index: 60 ? - Value - - 57 + - 136 : Function: - func_index: 30 + func_index: 61 ? - Value - - 58 + - 137 : Function: - func_index: 31 + func_index: 62 ? - Value - - 59 + - 138 : Function: - func_index: 32 + func_index: 63 ? - Value - - 60 + - 139 : Function: - func_index: 33 + func_index: 64 ? - Value - - 61 + - 140 : Function: - func_index: 34 + func_index: 65 ? - Value - - 62 + - 141 : Function: - func_index: 35 + func_index: 66 ? - Value - - 63 + - 142 : Function: - func_index: 36 + func_index: 67 ? - Value - - 64 + - 143 : Function: - func_index: 37 + func_index: 68 ? - Value - - 102 + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 : Const: const_index: 1 wildcard_imports: [] accesses: - - file_id: 1 + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] + - name: 203 + parent: ~ + declaration: + Import: 0 + symbols: + ? - Value + - 204 + : Function: + func_index: 233 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 126 + end: 133 +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: + - namespace_idx: 2 + file_id: 1 + external_name: + inner: 203 + span: + start: 19 + end: 28 + internal_name: + inner: 203 + span: + start: 32 + end: 39 + lookup: + 204: + Function: + id: 402 +enums: [] +exports: + 205: + Function: + internal_name: + inner: 205 + span: + start: 163 + end: 167 + external_name: ~ + id: 403 +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 133 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 133 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 45 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 207 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 + span: + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 + span: + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 + span: + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 + accesses: + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 + accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] - - name: 118 - parent: ~ - declaration: - Import: 0 - symbols: - ? - Value - - 119 - : Function: - func_index: 69 - wildcard_imports: [] + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 + span: + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 + span: + start: 13511 + end: 13514 + - file_id: 0 + span: + start: 13612 + end: 13615 + - file_id: 0 + span: + start: 13737 + end: 13740 + - file_id: 0 + span: + start: 13749 + end: 13752 + - file_id: 0 + span: + start: 13875 + end: 13878 + - file_id: 0 + span: + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 + span: + start: 14280 + end: 14283 + - file_id: 0 + span: + start: 14292 + end: 14295 + - file_id: 0 + span: + start: 14402 + end: 14405 + - file_id: 0 + span: + start: 14518 + end: 14521 + - file_id: 0 + span: + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 + span: + start: 18219 + end: 18222 + - file_id: 0 + span: + start: 18231 + end: 18234 + - file_id: 0 + span: + start: 18359 + end: 18362 + - file_id: 0 + span: + start: 18371 + end: 18374 + - file_id: 0 + span: + start: 18502 + end: 18505 + - file_id: 0 + span: + start: 18514 + end: 18517 + - file_id: 0 + span: + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - id: 5 + file_id: 0 + namespace: 0 + pub_span: + start: 151 + end: 154 + name: + inner: 7 + span: + start: 160 + end: 163 + attributes: + - Intrinsic + type_params: [] + body: 10 accesses: + - file_id: 0 + span: + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 + - file_id: 0 + span: + start: 3750 + end: 3753 + - file_id: 0 + span: + start: 3758 + end: 3761 + - file_id: 0 + span: + start: 4060 + end: 4063 + - file_id: 0 + span: + start: 4068 + end: 4071 + - file_id: 0 + span: + start: 4076 + end: 4079 + - file_id: 0 + span: + start: 4712 + end: 4715 + - file_id: 0 + span: + start: 4720 + end: 4723 + - file_id: 0 + span: + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 + span: + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 - file_id: 1 span: - start: 126 - end: 133 -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ - name: - inner: 91 - span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: - - namespace_idx: 2 - file_id: 1 - external_name: - inner: 118 - span: - start: 19 - end: 28 - internal_name: - inner: 118 - span: - start: 32 - end: 39 - lookup: - 119: - Function: - id: 106 -enums: [] -exports: - 120: - Function: - internal_name: - inner: 120 + start: 58 + end: 61 + - file_id: 1 span: - start: 163 - end: 167 - external_name: ~ - id: 107 -structs: - - id: 71 + start: 68 + end: 71 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 file_id: 0 namespace: 0 pub_span: - start: 3581 - end: 3584 + start: 179 + end: 182 name: - inner: 82 + inner: 8 span: - start: 3592 - end: 3598 - type_params: - - name: - inner: 5 - span: - start: 3599 - end: 3602 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3604 - end: 3610 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3628 - end: 3631 - - file_id: 0 - span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 - span: - start: 3622 - end: 3626 - ty: - inner: 90 - span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 - span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 - span: - start: 3915 - end: 3919 - - name: - inner: 83 - span: - start: 3647 - end: 3652 - ty: - inner: 90 - span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 - accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 - span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 accesses: - file_id: 0 span: - start: 3686 - end: 3692 + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 - file_id: 0 span: - start: 4051 - end: 4057 + start: 10297 + end: 10300 - file_id: 0 span: - start: 4218 - end: 4224 + start: 10309 + end: 10312 - file_id: 0 span: - start: 4462 - end: 4468 -traits: - - id: 45 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 70 - span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 + start: 10431 + end: 10434 + - file_id: 0 span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] - span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 71 - span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 + start: 10443 + end: 10446 + - file_id: 0 span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] - span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 - file_id: 0 - namespace: 0 - pub_span: - start: 3259 - end: 3262 - name: - inner: 6 - span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 + start: 10776 + end: 10779 + - file_id: 0 span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3371 - end: 3375 - - file_id: 0 - span: - start: 3422 - end: 3426 - - file_id: 0 - span: - start: 3437 - end: 3441 - - file_id: 0 - span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 - file_id: 0 - namespace: 0 - pub_span: - start: 3955 - end: 3958 - name: - inner: 87 - span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 + start: 10788 + end: 10791 + - file_id: 0 span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] - span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 - span: - start: 4146 - end: 4150 - - file_id: 0 - span: - start: 4165 - end: 4169 - - file_id: 0 - span: - start: 4343 - end: 4347 - - file_id: 0 - span: - start: 4359 - end: 4363 - - file_id: 0 - span: - start: 4370 - end: 4374 - - file_id: 0 - span: - start: 4390 - end: 4394 - - file_id: 0 - span: - start: 4037 - end: 4041 - - file_id: 0 - span: - start: 4058 - end: 4062 - - file_id: 0 - span: - start: 4073 - end: 4077 - - file_id: 0 - span: - start: 4240 - end: 4244 - - file_id: 0 - span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 - span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 - file_id: 0 - - id: 53 - trait_index: 0 - type_params: [] - target: - inner: 10 - span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 - span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 - file_id: 0 - - id: 57 - trait_index: 1 - type_params: [] - target: - inner: 7 - span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 - span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 - file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 - span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 - type_params: [] - target: - inner: 13 - span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: - start: 0 - end: 3 - name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 - span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 - span: - start: 27 - end: 32 - const_value: - Int: 65536 - accesses: [] - attributes: [] - - id: 91 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: ~ - name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 - span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 - span: - start: 5836 - end: 5847 - const_value: - Int: 32 - accesses: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 - file_id: 0 span: - start: 5989 - end: 6004 + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 21 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 122 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__match_int_exhaustive_with_wildcard.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__match_int_exhaustive_with_wildcard.snap index 843a1be..df29348 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__match_int_exhaustive_with_wildcard.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__match_int_exhaustive_with_wildcard.snap @@ -26,217 +26,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 19 + - 19 + - 19 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 21 + - 21 + - 21 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 23 + - 23 + - 23 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 25 + - 25 + - 25 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 27 + - 27 + - 27 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 29 + - 29 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 31 + - 31 + - 31 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 33 + - 33 + - 33 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 35 + - 35 + - 35 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 37 + - 37 + - 37 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 39 + - 39 + - 39 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 41 + - 41 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 20 - mutable: false + memory: 44 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 22 + trait_index: 12 + assoc_name: 62 + base: 46 - Function: signature: items: - - 20 - - 22 - - 25 + - 44 + - 46 + - 49 params_count: 2 - Function: signature: items: - - 20 - - 22 + - 44 + - 46 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 19 + trait_index: 14 + assoc_name: 61 + base: 43 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 28 + trait_index: 12 + assoc_name: 62 + base: 52 - Function: signature: items: - - 19 - - 28 - - 29 + - 43 + - 52 + - 53 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 31 + trait_index: 14 + assoc_name: 61 + base: 55 - Function: signature: items: - - 31 - - 32 + - 55 + - 56 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 35 - memory: 34 - mutable: false + of: 59 + memory: 58 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 34 + trait_index: 14 + assoc_name: 61 + base: 58 - Function: signature: items: - - 36 - - 37 + - 60 + - 61 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 40 - memory: 39 - mutable: false + of: 64 + memory: 63 + ownership: Shared - Pointer: - to: 40 - memory: 39 - mutable: false + to: 64 + memory: 63 + ownership: Shared - Function: signature: items: - - 41 - - 42 + - 65 + - 66 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 45 - memory: 44 - mutable: false + to: 69 + memory: 68 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 44 + trait_index: 14 + assoc_name: 61 + base: 68 - Slice: - of: 45 - memory: 44 - mutable: false + of: 69 + memory: 68 + ownership: Shared - Function: signature: items: - - 46 - - 47 - - 48 + - 70 + - 71 + - 72 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 50 + trait_index: 14 + assoc_name: 61 + base: 74 - Function: signature: items: - - 51 + - 75 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 53 + trait_index: 14 + assoc_name: 61 + base: 77 - Function: signature: items: - - 54 + - 78 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 56 - mutable: true + memory: 80 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 56 + trait_index: 14 + assoc_name: 61 + base: 80 - Function: signature: items: - - 57 + - 81 - 6 - - 58 + - 82 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 61 - mutable: true + memory: 85 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 63 - mutable: false + memory: 87 + ownership: Shared - Function: signature: items: - - 62 - - 64 - - 60 + - 86 + - 88 + - 84 - 2 params_count: 3 - Function: @@ -269,6 +399,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -377,14 +561,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 89 + trait_index: 14 + assoc_name: 61 + base: 132 - TypeParam: owner: ImplBlock: 2 @@ -392,248 +647,263 @@ types: - Struct: struct_index: 0 args: - - 91 + - 134 - Function: signature: items: - - 92 + - 135 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 91 + trait_index: 14 + assoc_name: 61 + base: 134 - Function: signature: items: - - 94 - - 92 + - 137 + - 135 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 96 + trait_index: 15 + assoc_name: 57 + base: 139 - Pointer: - to: 96 - memory: 97 - mutable: true + to: 139 + memory: 140 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 99 - memory: 97 - mutable: true + to: 142 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 99 - - 100 + - 141 + - 142 + - 143 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 97 + trait_index: 14 + assoc_name: 61 + base: 140 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 103 - memory: 97 - mutable: true + of: 146 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 102 - - 104 + - 141 + - 145 + - 147 params_count: 2 - Struct: struct_index: 0 args: - - 97 + - 140 - Pointer: to: 6 - memory: 97 - mutable: true + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 106 - - 107 + - 141 + - 149 + - 150 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 110 - memory: 109 - mutable: false + to: 153 + memory: 152 + ownership: Shared - Function: signature: items: - - 111 + - 154 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 114 - memory: 113 - mutable: true + to: 157 + memory: 156 + ownership: Exclusive - Function: signature: items: - - 115 + - 158 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 118 - memory: 117 - mutable: false + to: 161 + memory: 160 + ownership: Shared - Function: signature: items: - - 119 + - 162 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 122 - memory: 121 - mutable: false + to: 165 + memory: 164 + ownership: Shared - Pointer: - to: 122 - memory: 121 - mutable: true + to: 165 + memory: 164 + ownership: Exclusive - Function: signature: items: - - 123 - - 124 + - 166 + - 167 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 127 - memory: 126 - mutable: false + to: 170 + memory: 169 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 126 + trait_index: 14 + assoc_name: 61 + base: 169 - Function: signature: items: - - 128 - - 129 - - 128 + - 171 + - 172 + - 171 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 132 - memory: 131 - mutable: false + to: 175 + memory: 174 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 131 + trait_index: 14 + assoc_name: 61 + base: 174 - Function: signature: items: - - 133 - - 134 - - 133 + - 176 + - 177 + - 176 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 137 - memory: 136 - mutable: true + to: 180 + memory: 179 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 136 + trait_index: 14 + assoc_name: 61 + base: 179 - Function: signature: items: - - 138 - - 139 - - 138 + - 181 + - 182 + - 181 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 142 - memory: 141 - mutable: true + to: 185 + memory: 184 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 141 + trait_index: 14 + assoc_name: 61 + base: 184 - Function: signature: items: - - 143 - - 144 - - 143 + - 186 + - 187 + - 186 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 189 + - Function: + signature: + items: + - 190 + - 190 + - 190 params_count: 2 - TypeParam: owner: @@ -644,28 +914,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 147 - memory: 146 - mutable: false + of: 193 + memory: 192 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 146 + trait_index: 14 + assoc_name: 61 + base: 192 - Function: signature: items: - - 148 - - 149 + - 194 + - 195 params_count: 1 - Pointer: - to: 147 - memory: 146 - mutable: false + to: 193 + memory: 192 + ownership: Shared - Function: signature: items: - - 148 - - 151 + - 194 + - 197 params_count: 1 - Function: signature: @@ -679,8273 +949,29297 @@ types: - 17 - 16 params_count: 1 - - Function: - signature: - items: - - 11 - - 11 - params_count: 1 - FunctionItem: - id: 1 + id: 58 + type_args: [] + - FunctionItem: + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 type_args: - 1 - FunctionItem: - id: 2 + id: 39 type_args: - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 158 + - 245 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 158 + - 245 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 161 + - 248 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 161 + - 248 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 99 + - 142 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 103 - memory: 97 - mutable: false + to: 146 + memory: 140 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 103 + - 146 - Slice: - of: 103 - memory: 97 - mutable: false + of: 146 + memory: 140 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 117 + trait_index: 14 + assoc_name: 61 + base: 160 - FunctionItem: - id: 6 + id: 43 type_args: - - 127 - - 126 + - 170 + - 169 - FunctionItem: - id: 6 + id: 43 type_args: - - 132 - - 131 + - 175 + - 174 - FunctionItem: - id: 6 + id: 43 type_args: - - 137 - - 136 + - 180 + - 179 - FunctionItem: - id: 6 + id: 43 type_args: - - 142 - - 141 + - 185 + - 184 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 146 - mutable: false + memory: 192 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 diagnostics: [] functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 30 + signature_index: 54 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 19 + inner: 43 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 28 + inner: 52 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 29 + inner: 53 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 33 + signature_index: 57 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 31 + inner: 55 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 32 + inner: 56 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 38 + signature_index: 62 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 36 + inner: 60 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 37 + inner: 61 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 43 + signature_index: 67 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 41 + inner: 65 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 42 + inner: 66 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 49 + signature_index: 73 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 46 + inner: 70 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 47 + inner: 71 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 48 + inner: 72 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 52 + signature_index: 76 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 51 + inner: 75 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 55 + signature_index: 79 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 54 + inner: 78 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 59 + signature_index: 83 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 57 + inner: 81 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 58 + inner: 82 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 65 + signature_index: 89 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 62 + inner: 86 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 64 + inner: 88 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 60 + inner: 84 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 93 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 93 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 97 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 + span: + start: 3058 + end: 3059 + ty: + inner: 11 span: - start: 1813 - end: 1816 + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1863 - end: 1868 + start: 3103 + end: 3104 ty: - inner: 12 + inner: 13 + span: + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 + span: + start: 3111 + end: 3112 + ty: + inner: 13 span: - start: 1870 - end: 1873 + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 + start: 3159 + end: 3162 + - mut_span: ~ + name: + inner: 101 + span: + start: 3164 + end: 3165 + ty: + inner: 14 + span: + start: 3167 + end: 3170 result: - inner: 11 + inner: 14 span: - start: 1933 - end: 1936 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 30 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1952 - end: 1955 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 56 + inner: 104 span: - start: 1959 - end: 1972 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1973 - end: 1978 + start: 3209 + end: 3210 ty: - inner: 14 + inner: 15 + span: + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 + ty: + inner: 15 span: - start: 1980 - end: 1983 + start: 3220 + end: 3223 result: - inner: 10 + inner: 15 span: - start: 1988 - end: 1991 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 31 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 81 + signature_index: 97 name: - inner: 57 + inner: 105 span: - start: 2014 - end: 2027 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 + span: + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 + span: + start: 3270 + end: 3271 + ty: + inner: 11 span: - start: 2035 - end: 2038 + start: 3273 + end: 3276 result: inner: 11 span: - start: 2043 - end: 2046 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 32 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 98 name: - inner: 58 + inner: 106 span: - start: 2069 - end: 2082 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3315 + end: 3316 ty: - inner: 15 + inner: 13 + span: + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 span: - start: 2090 - end: 2093 + start: 3326 + end: 3329 result: - inner: 10 + inner: 13 span: - start: 2098 - end: 2101 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 33 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 99 name: - inner: 59 + inner: 107 span: - start: 2124 - end: 2137 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2145 - end: 2148 + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 result: - inner: 13 + inner: 14 span: - start: 2153 - end: 2156 - accesses: [] + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 34 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 100 name: - inner: 60 + inner: 108 span: - start: 2179 - end: 2192 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3421 + end: 3422 ty: - inner: 14 + inner: 15 span: - start: 2200 - end: 2203 + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 + span: + start: 3429 + end: 3430 + ty: + inner: 15 + span: + start: 3432 + end: 3435 result: - inner: 12 + inner: 15 span: - start: 2208 - end: 2211 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 35 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 97 name: - inner: 61 + inner: 109 span: - start: 2234 - end: 2247 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2248 - end: 2253 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 + span: + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 + span: + start: 3482 + end: 3483 + ty: + inner: 11 span: - start: 2255 - end: 2258 + start: 3485 + end: 3488 result: - inner: 13 + inner: 11 span: - start: 2263 - end: 2266 - accesses: [] + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 36 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 98 name: - inner: 62 + inner: 110 span: - start: 2289 - end: 2302 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3527 + end: 3528 ty: - inner: 15 + inner: 13 span: - start: 2310 - end: 2313 + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 + span: + start: 3535 + end: 3536 + ty: + inner: 13 + span: + start: 3538 + end: 3541 result: - inner: 12 + inner: 13 span: - start: 2318 - end: 2321 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 37 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 99 name: - inner: 63 + inner: 111 span: - start: 2344 - end: 2359 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3580 + end: 3581 ty: inner: 14 span: - start: 2367 - end: 2370 + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 + span: + start: 3588 + end: 3589 + ty: + inner: 14 + span: + start: 3591 + end: 3594 result: - inner: 15 + inner: 14 span: - start: 2375 - end: 2378 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 38 + - id: 75 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3618 + end: 3621 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 100 name: - inner: 64 + inner: 112 span: - start: 2401 - end: 2415 + start: 3625 + end: 3632 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 span: - start: 2416 - end: 2421 + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 + span: + start: 3641 + end: 3642 ty: inner: 15 span: - start: 2423 - end: 2426 + start: 3644 + end: 3647 result: - inner: 14 + inner: 15 span: - start: 2431 - end: 2434 - accesses: [] + start: 3652 + end: 3655 + accesses: + - file_id: 0 + span: + start: 12438 + end: 12445 attributes: - Intrinsic body: ~ - - id: 80 + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 112 + signature_index: 97 name: - inner: 93 + inner: 113 span: - start: 4588 - end: 4592 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 111 + inner: 11 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 111 - expected_type: 111 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 111 - span: - start: 4632 - end: 4633 - ty: 111 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 116 + signature_index: 101 name: - inner: 94 + inner: 114 span: - start: 4671 - end: 4679 - params: [] + start: 3731 + end: 3738 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3739 + end: 3740 + ty: + inner: 10 + span: + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 result: - inner: 115 + inner: 10 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 115 - expected_type: 115 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 115 - span: - start: 4723 - end: 4724 - ty: 115 + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3777 + end: 3780 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 120 + signature_index: 98 name: - inner: 95 + inner: 115 span: - start: 4762 - end: 4769 + start: 3784 + end: 3791 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3792 + end: 3793 + ty: + inner: 13 + span: + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 span: - start: 4786 - end: 4789 + start: 3800 + end: 3801 ty: - inner: 119 + inner: 13 span: - start: 4791 - end: 4798 + start: 3803 + end: 3806 result: - inner: 16 + inner: 13 span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 119 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 170 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 170 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3811 + end: 3814 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 - span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: - inner: 13 - span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 125 + signature_index: 102 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 123 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 124 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 123 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 124 - expected_type: 124 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 124 - span: - start: 4936 - end: 4939 - ty: 124 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 + start: 3883 + end: 3886 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 117 + span: + start: 3890 + end: 3897 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 + start: 3898 + end: 3899 + ty: + inner: 14 span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3901 + end: 3904 + - mut_span: ~ + name: + inner: 101 + span: + start: 3906 + end: 3907 + ty: + inner: 14 + span: + start: 3909 + end: 3912 + result: + inner: 14 + span: + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 + attributes: + - Intrinsic + body: ~ + - id: 81 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 130 + signature_index: 100 name: - inner: 98 + inner: 118 span: - start: 4977 - end: 4980 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3951 + end: 3952 ty: - inner: 128 + inner: 15 span: - start: 5002 - end: 5009 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3959 + end: 3960 ty: - inner: 129 + inner: 15 span: - start: 5018 - end: 5027 + start: 3962 + end: 3965 result: - inner: 128 + inner: 15 span: - start: 5032 - end: 5039 - accesses: [] + start: 3970 + end: 3973 + accesses: + - file_id: 0 + span: + start: 12539 + end: 12546 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 128 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 128 - expected_type: 128 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 129 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 129 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 127 - - 126 - arguments: [] - ty: 129 - span: - start: 5078 - end: 5097 - ty: 129 - span: - start: 5070 - end: 5097 - ty: 128 - span: - start: 5051 - end: 5097 - ty: 128 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 + start: 3989 + end: 3992 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 119 + span: + start: 3996 + end: 4003 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 + start: 4004 + end: 4005 + ty: + inner: 11 span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 4007 + end: 4010 + - mut_span: ~ + name: + inner: 101 + span: + start: 4012 + end: 4013 + ty: + inner: 11 + span: + start: 4015 + end: 4018 + result: + inner: 11 + span: + start: 4023 + end: 4026 + accesses: + - file_id: 0 + span: + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4042 + end: 4045 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 135 + signature_index: 101 name: - inner: 99 + inner: 120 span: - start: 5136 - end: 5139 + start: 4049 + end: 4056 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 4057 + end: 4058 ty: - inner: 133 + inner: 10 span: - start: 5161 - end: 5168 + start: 4060 + end: 4063 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 4065 + end: 4066 ty: - inner: 134 + inner: 10 span: - start: 5177 - end: 5186 + start: 4068 + end: 4071 result: - inner: 133 + inner: 10 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 133 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 133 - expected_type: 133 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 134 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 134 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 132 - - 131 - arguments: [] - ty: 134 - span: - start: 5237 - end: 5256 - ty: 134 - span: - start: 5229 - end: 5256 - ty: 133 - span: - start: 5210 - end: 5256 - ty: 133 + start: 4076 + end: 4079 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 + attributes: + - Intrinsic + body: ~ + - id: 84 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 4095 + end: 4098 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 121 + span: + start: 4102 + end: 4109 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: + start: 4110 + end: 4111 + ty: inner: 13 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4113 + end: 4116 + - mut_span: ~ + name: + inner: 101 + span: + start: 4118 + end: 4119 + ty: + inner: 13 + span: + start: 4121 + end: 4124 + result: + inner: 13 + span: + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 + attributes: + - Intrinsic + body: ~ + - id: 85 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 140 + signature_index: 102 name: - inner: 100 + inner: 122 span: - start: 5295 - end: 5302 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4163 + end: 4164 ty: - inner: 138 + inner: 12 span: - start: 5324 - end: 5335 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4171 + end: 4172 ty: - inner: 139 + inner: 12 span: - start: 5344 - end: 5353 + start: 4174 + end: 4177 result: - inner: 138 + inner: 12 span: - start: 5358 - end: 5369 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 138 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 138 - expected_type: 138 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 139 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 139 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 137 - - 136 - arguments: [] - ty: 139 - span: - start: 5408 - end: 5427 - ty: 139 - span: - start: 5400 - end: 5427 - ty: 138 - span: - start: 5381 - end: 5427 - ty: 138 + start: 4182 + end: 4185 + accesses: + - file_id: 0 span: - start: 5370 - end: 5439 - - id: 87 + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 + start: 4201 + end: 4204 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 123 + span: + start: 4208 + end: 4218 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: - inner: 13 + start: 4219 + end: 4220 + ty: + inner: 11 span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4222 + end: 4225 + - mut_span: ~ + name: + inner: 101 + span: + start: 4227 + end: 4228 + ty: + inner: 11 + span: + start: 4230 + end: 4233 + result: + inner: 11 + span: + start: 4238 + end: 4241 + accesses: + - file_id: 0 + span: + start: 6924 + end: 6934 + - file_id: 0 + span: + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4257 + end: 4260 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 145 + signature_index: 98 name: - inner: 101 + inner: 124 span: - start: 5466 - end: 5473 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4275 + end: 4276 ty: - inner: 143 + inner: 13 span: - start: 5495 - end: 5506 + start: 4278 + end: 4281 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4283 + end: 4284 ty: - inner: 144 + inner: 13 span: - start: 5515 - end: 5524 + start: 4286 + end: 4289 result: - inner: 143 + inner: 13 span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 143 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 143 - expected_type: 143 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 144 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 144 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 142 - - 141 - arguments: [] - ty: 144 - span: - start: 5579 - end: 5598 - ty: 144 - span: - start: 5571 - end: 5598 - ty: 143 - span: - start: 5552 - end: 5598 - ty: 143 + start: 4294 + end: 4297 + accesses: + - file_id: 0 span: - start: 5541 - end: 5610 - - id: 106 - file_id: 1 - namespace: ~ + start: 9522 + end: 9532 + - file_id: 0 + span: + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 + file_id: 0 + namespace: 0 parent: ~ - pub_span: ~ + pub_span: + start: 4313 + end: 4316 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 97 name: - inner: 117 + inner: 125 span: - start: 15 - end: 19 + start: 4320 + end: 4329 params: - mut_span: ~ name: - inner: 118 + inner: 100 span: - start: 20 - end: 21 + start: 4330 + end: 4331 ty: inner: 11 span: - start: 23 - end: 26 + start: 4333 + end: 4336 + - mut_span: ~ + name: + inner: 101 + span: + start: 4338 + end: 4339 + ty: + inner: 11 + span: + start: 4341 + end: 4344 result: inner: 11 span: - start: 31 - end: 34 + start: 4349 + end: 4352 accesses: - - file_id: 1 + - file_id: 0 span: - start: 129 - end: 133 - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 35 - end: 119 - locals: - - name: - inner: 118 - span: - start: 20 - end: 21 - ty: 11 - mut_span: ~ - accesses: - - span: - start: 47 - end: 48 - kind: Read - inferred_type: 11 - expected_type: 11 - - kind: Block - label: ~ - parent: 0 - span: - start: 64 - end: 69 - locals: [] - inferred_type: 11 - expected_type: 11 - - kind: Block - label: ~ - parent: 0 - span: - start: 84 - end: 89 - locals: [] - inferred_type: 11 - expected_type: 11 - - kind: Block - label: ~ - parent: 0 - span: - start: 104 - end: 110 - locals: [] - inferred_type: 11 - expected_type: 11 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Match: - scrutinee: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 11 - span: - start: 47 - end: 48 - arms: - - pattern: - Int: 0 - pattern_span: - start: 59 - end: 60 - body: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 11 - span: - start: 66 - end: 67 - ty: 11 - span: - start: 64 - end: 69 - - pattern: - Int: 1 - pattern_span: - start: 79 - end: 80 - body: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Int: - value: 1 - ty: 11 - span: - start: 86 - end: 87 - ty: 11 - span: - start: 84 - end: 89 - - pattern: Wildcard - pattern_span: - start: 99 - end: 100 - body: - kind: - Block: - scope_index: 3 - expressions: [] - result: - kind: - Unary: - operator: - inner: InvertSign - span: - start: 106 - end: 107 - operand: - kind: - Int: - value: 1 - ty: 11 - span: - start: 107 - end: 108 - ty: 11 - span: - start: 106 - end: 108 - ty: 11 - span: - start: 104 - end: 110 - ty: 11 - span: - start: 41 - end: 117 - ty: 11 + start: 7032 + end: 7041 + - file_id: 0 span: - start: 35 - end: 119 - - id: 68 + start: 8300 + end: 8309 + - file_id: 0 + span: + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 + attributes: + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4368 + end: 4371 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 26 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 79 + inner: 126 span: - start: 3404 - end: 3408 + start: 4375 + end: 4384 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4385 + end: 4386 ty: - inner: 20 + inner: 13 span: - start: 3409 - end: 3413 + start: 4388 + end: 4391 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4393 + end: 4394 ty: - inner: 22 + inner: 13 span: - start: 3422 - end: 3432 + start: 4396 + end: 4399 result: - inner: 25 + inner: 13 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 22 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 25 - expected_type: 25 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 22 - span: - start: 3484 - end: 3489 - ty: 25 - span: - start: 3466 - end: 3490 - ty: 25 + start: 4404 + end: 4407 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 9630 + end: 9639 + - file_id: 0 + span: + start: 10898 + end: 10907 + attributes: + - Intrinsic + body: ~ + - id: 90 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4423 + end: 4426 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 81 + inner: 127 span: - start: 3519 - end: 3523 + start: 4430 + end: 4440 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4441 + end: 4442 ty: - inner: 20 + inner: 11 span: - start: 3524 - end: 3528 - result: - inner: 22 - span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 22 - expected_type: 22 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3566 - end: 3570 - ty: 22 - span: - start: 3554 - end: 3571 - ty: 22 - span: - start: 3544 - end: 3577 - - id: 72 - file_id: 0 - namespace: 0 - parent: - GenericImpl: 2 - pub_span: - start: 3718 - end: 3721 - type_params: - - name: - inner: 13 - span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 93 - name: - inner: 84 - span: - start: 3725 - end: 3727 - params: [] - result: - inner: 92 - span: - start: 3736 - end: 3740 - accesses: - - file_id: 0 - span: - start: 4226 - end: 4228 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 158 - - 91 - arguments: [] - ty: 94 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 158 - - 91 - arguments: [] - ty: 94 - span: - start: 3788 - end: 3803 - ty: 92 - span: - start: 3751 - end: 3805 - ty: 92 - span: - start: 3741 - end: 3811 - - id: 73 - file_id: 0 - namespace: 0 - parent: - GenericImpl: 2 - pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 95 - name: - inner: 85 - span: - start: 3838 - end: 3843 - params: + start: 4444 + end: 4447 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 3847 - end: 3852 + start: 4449 + end: 4450 ty: - inner: 94 + inner: 11 span: - start: 3854 - end: 3863 + start: 4452 + end: 4455 result: - inner: 92 + inner: 11 span: - start: 3868 - end: 3872 + start: 4460 + end: 4463 accesses: - file_id: 0 span: - start: 4470 - end: 4475 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 94 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 161 - - 91 - arguments: [] - ty: 94 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 94 - span: - start: 3938 - end: 3943 - ty: 94 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 161 - - 91 - arguments: [] - ty: 94 - span: - start: 3898 - end: 3913 - ty: 92 - span: - start: 3883 - end: 3945 - ty: 92 + start: 7141 + end: 7151 + - file_id: 0 span: - start: 3873 - end: 3951 - - id: 76 + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 + attributes: + - Intrinsic + body: ~ + - id: 91 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4479 + end: 4482 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 108 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 88 + inner: 128 span: - start: 4007 - end: 4014 + start: 4486 + end: 4496 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4497 + end: 4498 ty: - inner: 98 + inner: 13 span: - start: 4021 - end: 4041 + start: 4500 + end: 4503 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4505 + end: 4506 ty: - inner: 106 + inner: 13 span: - start: 4051 - end: 4068 + start: 4508 + end: 4511 result: - inner: 107 + inner: 13 span: - start: 4073 - end: 4091 + start: 4516 + end: 4519 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 9739 + end: 9749 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 11040 + end: 11050 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 92 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 101 + parent: ~ + pub_span: + start: 4535 + end: 4538 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 90 + inner: 129 span: - start: 4115 - end: 4120 + start: 4542 + end: 4549 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4550 + end: 4551 ty: - inner: 98 + inner: 11 span: - start: 4130 - end: 4150 + start: 4553 + end: 4556 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4558 + end: 4559 ty: - inner: 99 + inner: 11 span: - start: 4159 - end: 4160 + start: 4561 + end: 4564 result: - inner: 100 + inner: 11 span: - start: 4165 - end: 4182 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 100 - expected_type: 100 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 97 - - 99 - arguments: [] - ty: 106 - span: - start: 4218 - end: 4235 - ty: 100 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4267 - end: 4270 - ty: 99 - memory: 97 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 99 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4290 - end: 4293 - ty: 100 + start: 4569 + end: 4572 + accesses: + - file_id: 0 span: - start: 4183 - end: 4299 - - id: 78 + start: 7245 + end: 7252 + - file_id: 0 + span: + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic + body: ~ + - id: 93 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 105 + parent: ~ + pub_span: + start: 4588 + end: 4591 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 92 + inner: 130 span: - start: 4322 - end: 4333 + start: 4595 + end: 4602 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4337 - end: 4341 + start: 4603 + end: 4604 ty: - inner: 98 + inner: 13 span: - start: 4343 - end: 4363 + start: 4606 + end: 4609 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4611 + end: 4612 ty: - inner: 102 + inner: 13 span: - start: 4370 - end: 4385 + start: 4614 + end: 4617 result: - inner: 104 + inner: 13 span: - start: 4390 - end: 4408 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 102 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 104 - expected_type: 104 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 97 - - 103 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 97 - - 103 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4481 - end: 4484 - ty: 106 - span: - start: 4462 - end: 4485 - ty: 167 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4517 - end: 4520 - ty: 104 - span: - start: 4419 - end: 4531 - ty: 104 + start: 4622 + end: 4625 + accesses: + - file_id: 0 span: - start: 4409 - end: 4542 - - id: 88 + start: 9843 + end: 9850 + - file_id: 0 + span: + start: 11177 + end: 11184 + attributes: + - Intrinsic + body: ~ + - id: 94 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4641 + end: 4644 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 150 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 18 + inner: 131 span: - start: 5671 - end: 5674 + start: 4648 + end: 4655 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4656 + end: 4657 + ty: + inner: 11 + span: + start: 4659 + end: 4662 + - mut_span: ~ + name: + inner: 101 span: - start: 5675 - end: 5679 + start: 4664 + end: 4665 ty: - inner: 148 + inner: 11 span: - start: 5675 - end: 5679 + start: 4667 + end: 4670 result: - inner: 149 + inner: 11 span: - start: 5684 - end: 5693 - accesses: [] + start: 4675 + end: 4678 + accesses: + - file_id: 0 + span: + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 149 - expected_type: 149 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5714 - end: 5718 - ty: 149 - span: - start: 5704 - end: 5719 - ty: 149 - span: - start: 5694 - end: 5725 - - id: 89 + - Intrinsic + body: ~ + - id: 95 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5745 - end: 5748 + start: 4694 + end: 4697 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 152 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 101 name: - inner: 91 + inner: 132 span: - start: 5752 - end: 5755 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4709 + end: 4710 + ty: + inner: 10 span: - start: 5756 - end: 5760 + start: 4712 + end: 4715 + - mut_span: ~ + name: + inner: 101 + span: + start: 4717 + end: 4718 ty: - inner: 148 + inner: 10 span: - start: 5756 - end: 5760 + start: 4720 + end: 4723 result: - inner: 151 + inner: 10 span: - start: 5765 - end: 5772 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 151 - expected_type: 151 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5793 - end: 5797 - ty: 151 - span: - start: 5783 - end: 5798 - ty: 151 + start: 4728 + end: 4731 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 + attributes: + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4747 + end: 4750 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 98 name: - inner: 104 + inner: 133 span: - start: 5887 - end: 5905 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 5906 - end: 5910 + start: 4762 + end: 4763 ty: - inner: 17 + inner: 13 + span: + start: 4765 + end: 4768 + - mut_span: ~ + name: + inner: 101 + span: + start: 4770 + end: 4771 + ty: + inner: 13 span: - start: 5906 - end: 5910 + start: 4773 + end: 4776 result: - inner: 17 + inner: 13 span: - start: 5915 - end: 5919 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 + start: 4781 + end: 4784 + accesses: + - file_id: 0 span: - start: 5920 - end: 6063 - - id: 93 + start: 9944 + end: 9951 + attributes: + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 102 name: - inner: 106 + inner: 134 span: - start: 6090 - end: 6108 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6109 - end: 6113 + start: 4815 + end: 4816 ty: - inner: 17 + inner: 12 + span: + start: 4818 + end: 4821 + - mut_span: ~ + name: + inner: 101 span: - start: 6109 - end: 6113 + start: 4823 + end: 4824 + ty: + inner: 12 + span: + start: 4826 + end: 4829 result: - inner: 17 + inner: 12 span: - start: 6118 - end: 6122 - accesses: [] + start: 4834 + end: 4837 + accesses: + - file_id: 0 + span: + start: 11303 + end: 11310 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 - span: - start: 6123 - end: 6266 - - id: 94 + - Intrinsic + body: ~ + - id: 98 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 4853 + end: 4856 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 95 name: - inner: 108 + inner: 135 span: - start: 6293 - end: 6301 + start: 4860 + end: 4870 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6302 - end: 6306 + start: 4871 + end: 4876 ty: - inner: 17 + inner: 11 span: - start: 6302 - end: 6306 + start: 4878 + end: 4881 result: - inner: 16 + inner: 11 span: - start: 6311 - end: 6315 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 + start: 4886 + end: 4889 + accesses: + - file_id: 0 span: - start: 6316 - end: 6353 - - id: 95 + start: 7442 + end: 7452 + - file_id: 0 + span: + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 + attributes: + - Intrinsic + body: ~ + - id: 99 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 4905 + end: 4908 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 96 name: - inner: 107 + inner: 136 span: - start: 6380 - end: 6398 + start: 4912 + end: 4922 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 4923 + end: 4928 ty: - inner: 17 + inner: 13 span: - start: 6399 - end: 6403 + start: 4930 + end: 4933 result: - inner: 16 + inner: 13 span: - start: 6408 - end: 6412 + start: 4938 + end: 4941 accesses: - file_id: 0 span: - start: 6141 - end: 6159 + start: 10040 + end: 10050 + - file_id: 0 + span: + start: 11407 + end: 11417 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 - span: - start: 6413 - end: 6455 - - id: 96 + - Intrinsic + body: ~ + - id: 100 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 4957 + end: 4960 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 103 name: - inner: 105 + inner: 137 span: - start: 6482 - end: 6500 + start: 4964 + end: 4979 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 4980 + end: 4985 ty: - inner: 17 + inner: 11 span: - start: 6501 - end: 6505 + start: 4987 + end: 4990 result: - inner: 16 + inner: 14 span: - start: 6510 - end: 6514 - accesses: - - file_id: 0 - span: - start: 5938 - end: 5956 + start: 4995 + end: 4998 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 - span: - start: 6515 - end: 6557 - - id: 97 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 104 name: - inner: 109 + inner: 138 span: - start: 6584 - end: 6603 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6604 - end: 6608 + start: 5044 + end: 5047 result: - inner: 16 + inner: 14 span: - start: 6613 - end: 6617 + start: 5052 + end: 5055 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 105 name: - inner: 110 + inner: 139 span: - start: 6720 - end: 6734 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6735 - end: 6739 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6744 - end: 6748 + start: 5109 + end: 5112 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 106 name: - inner: 111 + inner: 140 span: - start: 6818 - end: 6839 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 6840 - end: 6844 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 6849 - end: 6853 + start: 5166 + end: 5169 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 107 name: - inner: 112 + inner: 141 span: - start: 7011 - end: 7030 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 7031 - end: 7035 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 7040 - end: 7044 + start: 5223 + end: 5226 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 108 name: - inner: 113 + inner: 142 span: - start: 7213 - end: 7229 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 7230 - end: 7234 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 7239 - end: 7243 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 109 name: - inner: 114 + inner: 143 span: - start: 7326 - end: 7343 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 7344 - end: 7348 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 7353 - end: 7357 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 110 name: - inner: 115 + inner: 144 span: - start: 7515 - end: 7535 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 7536 - end: 7540 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 7545 - end: 7549 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7687 - end: 7688 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 - span: - start: 7560 - end: 7674 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 - span: - start: 7690 - end: 7716 - ty: 16 - span: - start: 7560 - end: 7717 - ty: 16 - span: - start: 7550 - end: 7723 - - id: 104 + - Intrinsic + body: ~ + - id: 108 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7743 - end: 7746 + start: 5413 + end: 5416 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 111 name: - inner: 116 + inner: 145 span: - start: 7750 - end: 7766 + start: 5420 + end: 5433 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7767 - end: 7771 + start: 5434 + end: 5439 ty: - inner: 17 + inner: 14 span: - start: 7767 - end: 7771 + start: 5441 + end: 5444 result: - inner: 16 + inner: 11 span: - start: 7776 - end: 7780 + start: 5449 + end: 5452 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7781 - end: 7823 - locals: - - name: - inner: 80 - span: - start: 7767 - end: 7771 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7791 - end: 7795 - kind: Read - - span: - start: 7806 - end: 7810 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 7803 - end: 7805 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7796 - end: 7798 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7791 - end: 7795 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7799 - end: 7802 - ty: 16 - span: - start: 7791 - end: 7802 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7811 - end: 7813 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7806 - end: 7810 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7814 - end: 7817 - ty: 16 - span: - start: 7806 - end: 7817 - ty: 16 - span: - start: 7791 - end: 7817 - ty: 16 - span: - start: 7781 - end: 7823 -globals: [] -memories: [] -namespaces: - - name: 0 + - Intrinsic + body: ~ + - id: 109 + file_id: 0 + namespace: 0 parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: - trait_index: 0 - assoc_name: 10 - ? - Type - - 26 - : TypeSet: - typeset_index: 1 - ? - Type - - 66 - : TypeSet: - typeset_index: 0 - ? - Type - - 70 - : Trait: - trait_index: 0 - ? - Type - - 71 - : Trait: - trait_index: 1 - ? - Type - - 72 - : TraitAssocType: - trait_index: 1 - assoc_name: 72 - ? - Type - - 82 - : Struct: - struct_index: 0 - ? - Type - - 87 - : Trait: - trait_index: 3 - ? - Type - - 91 - : Module: - namespace_idx: 1 - ? - Value - - 1 - : Const: - const_index: 0 - ? - Value - - 4 - : Function: - func_index: 0 - ? - Value - - 11 - : Function: - func_index: 1 - ? - Value - - 12 - : Function: - func_index: 2 - ? - Value - - 15 - : Function: - func_index: 3 - ? - Value - - 16 - : Function: - func_index: 4 - ? - Value - - 19 - : Function: - func_index: 5 - ? - Value - - 20 - : Function: - func_index: 6 - ? - Value - - 21 - : Function: - func_index: 7 - ? - Value - - 25 - : Function: - func_index: 8 - ? - Value - - 30 - : Function: - func_index: 9 - ? - Value - - 34 - : Function: - func_index: 10 - ? - Value - - 36 - : Function: - func_index: 11 - ? - Value - - 37 - : Function: - func_index: 12 - ? - Value - - 39 - : Function: - func_index: 13 - ? - Value - - 41 - : Function: - func_index: 14 - ? - Value - - 42 - : Function: - func_index: 15 - ? - Value - - 43 - : Function: - func_index: 16 - ? - Value - - 44 - : Function: - func_index: 17 - ? - Value - - 45 - : Function: - func_index: 18 - ? - Value - - 46 - : Function: - func_index: 19 - ? - Value - - 47 - : Function: - func_index: 20 - ? - Value - - 48 - : Function: - func_index: 21 - ? - Value - - 49 - : Function: - func_index: 22 - ? - Value - - 50 - : Function: - func_index: 23 - ? - Value - - 51 - : Function: - func_index: 24 - ? - Value - - 52 - : Function: - func_index: 25 - ? - Value - - 53 - : Function: - func_index: 26 - ? - Value - - 54 - : Function: - func_index: 27 - ? - Value - - 55 - : Function: - func_index: 28 - ? - Value - - 56 - : Function: - func_index: 29 - ? - Value - - 57 - : Function: - func_index: 30 - ? - Value - - 58 - : Function: - func_index: 31 - ? - Value - - 59 - : Function: - func_index: 32 - ? - Value - - 60 - : Function: - func_index: 33 - ? - Value - - 61 - : Function: - func_index: 34 - ? - Value - - 62 - : Function: - func_index: 35 - ? - Value - - 63 - : Function: - func_index: 36 - ? - Value - - 64 - : Function: - func_index: 37 - ? - Value - - 102 - : Const: - const_index: 1 - wildcard_imports: [] - accesses: - - file_id: 1 - span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ + pub_span: + start: 5468 + end: 5471 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 112 name: - inner: 91 + inner: 146 span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: [] -enums: [] -exports: - 117: - Function: - internal_name: - inner: 117 - span: - start: 129 - end: 133 - external_name: ~ - id: 106 -structs: - - id: 71 + start: 5475 + end: 5488 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5489 + end: 5494 + ty: + inner: 14 + span: + start: 5496 + end: 5499 + result: + inner: 10 + span: + start: 5504 + end: 5507 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 110 file_id: 0 namespace: 0 + parent: ~ pub_span: - start: 3581 - end: 3584 + start: 5523 + end: 5526 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 113 name: - inner: 82 + inner: 147 span: - start: 3592 - end: 3598 - type_params: - - name: - inner: 5 - span: - start: 3599 - end: 3602 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3604 - end: 3610 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3628 - end: 3631 - - file_id: 0 - span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 + start: 5530 + end: 5543 + params: + - mut_span: ~ + name: + inner: 82 span: - start: 3622 - end: 3626 + start: 5544 + end: 5549 ty: - inner: 90 + inner: 15 span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 - span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 - span: - start: 3915 - end: 3919 - - name: - inner: 83 + start: 5551 + end: 5554 + result: + inner: 11 + span: + start: 5559 + end: 5562 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 111 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5578 + end: 5581 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 114 + name: + inner: 148 + span: + start: 5585 + end: 5598 + params: + - mut_span: ~ + name: + inner: 82 span: - start: 3647 - end: 3652 + start: 5599 + end: 5604 ty: - inner: 90 + inner: 15 span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 - accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 - span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 - accesses: - - file_id: 0 - span: - start: 3686 - end: 3692 - - file_id: 0 - span: - start: 4051 - end: 4057 - - file_id: 0 - span: - start: 4218 - end: 4224 - - file_id: 0 - span: - start: 4462 - end: 4468 -traits: - - id: 45 + start: 5606 + end: 5609 + result: + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 file_id: 0 namespace: 0 - pub_span: ~ + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 name: - inner: 70 + inner: 149 span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 - span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] - span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 + start: 5640 + end: 5653 + params: + - mut_span: ~ + name: + inner: 82 span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 + start: 5654 + end: 5659 + ty: + inner: 14 + span: + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 113 file_id: 0 namespace: 0 - pub_span: ~ + parent: ~ + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 name: - inner: 71 + inner: 150 span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 - span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] - span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 file_id: 0 namespace: 0 + parent: ~ pub_span: - start: 3259 - end: 3262 + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 name: - inner: 6 + inner: 151 span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 - span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3371 - end: 3375 - - file_id: 0 - span: - start: 3422 - end: 3426 - - file_id: 0 + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 span: - start: 3437 - end: 3441 - - file_id: 0 + start: 5764 + end: 5769 + ty: + inner: 15 span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 file_id: 0 namespace: 0 + parent: ~ pub_span: - start: 3955 - end: 3958 + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 name: - inner: 87 + inner: 152 span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 - span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] - span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 - span: - start: 4146 - end: 4150 - - file_id: 0 - span: - start: 4165 - end: 4169 - - file_id: 0 - span: - start: 4343 - end: 4347 - - file_id: 0 - span: - start: 4359 - end: 4363 - - file_id: 0 - span: - start: 4370 - end: 4374 - - file_id: 0 - span: - start: 4390 - end: 4394 - - file_id: 0 - span: - start: 4037 - end: 4041 - - file_id: 0 - span: - start: 4058 - end: 4062 - - file_id: 0 - span: - start: 4073 - end: 4077 - - file_id: 0 + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 span: - start: 4240 - end: 4244 - - file_id: 0 + start: 5819 + end: 5824 + ty: + inner: 15 span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 + start: 5826 + end: 5829 + result: + inner: 12 span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 file_id: 0 - - id: 53 - trait_index: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 type_params: [] - target: - inner: 10 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 153 span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 file_id: 0 - - id: 57 - trait_index: 1 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 type_params: [] - target: - inner: 7 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 154 span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 155 + name: + inner: 178 span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 - type_params: [] - target: - inner: 13 + start: 21343 + end: 21347 + params: [] + result: + inner: 154 span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 + start: 21369 + end: 21376 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21377 + end: 21399 + locals: [] + inferred_type: 154 + expected_type: 154 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 154 + span: + start: 21387 + end: 21388 + ty: 154 + span: + start: 21377 + end: 21399 + - id: 376 file_id: 0 - namespace: 0 + namespace: 1 parent: ~ pub_span: - start: 0 - end: 3 + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 159 name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 + inner: 179 span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 + start: 21426 + end: 21434 + params: [] + result: + inner: 158 span: - start: 27 - end: 32 - const_value: - Int: 65536 + start: 21456 + end: 21463 accesses: [] - attributes: [] - - id: 91 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21464 + end: 21486 + locals: [] + inferred_type: 158 + expected_type: 158 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 158 + span: + start: 21474 + end: 21475 + ty: 158 + span: + start: 21464 + end: 21486 + - id: 377 file_id: 0 - namespace: 0 + namespace: 1 parent: ~ - pub_span: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 163 name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 + inner: 180 span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: + inner: 162 + span: + start: 21542 + end: 21549 + result: + inner: 16 span: - start: 5836 - end: 5847 - const_value: - Int: 32 - accesses: + start: 21554 + end: 21558 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21559 + end: 21596 + locals: + - name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: 162 + mut_span: ~ + accesses: + - span: + start: 21569 + end: 21572 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Eq + span: + start: 21586 + end: 21588 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 257 + span: + start: 21569 + end: 21572 + right: + kind: + Int: + value: 0 + ty: 257 + span: + start: 21589 + end: 21590 + ty: 16 + span: + start: 21569 + end: 21590 + ty: 16 + span: + start: 21559 + end: 21596 + - id: 378 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 168 + name: + inner: 181 + span: + start: 21623 + end: 21631 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: + inner: 166 + span: + start: 21653 + end: 21660 + result: + inner: 167 + span: + start: 21665 + end: 21672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21673 + end: 21697 + locals: + - name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: 166 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 167 + expected_type: 167 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 167 + span: + start: 21683 + end: 21686 + ty: 167 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 173 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 171 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 172 + span: + start: 21765 + end: 21774 + result: + inner: 171 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 171 + mut_span: ~ + accesses: + - span: + start: 21798 + end: 21801 + kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 172 + mut_span: ~ + accesses: + - span: + start: 21817 + end: 21822 + kind: Read + inferred_type: 171 + expected_type: 171 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 21815 + end: 21816 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 172 + span: + start: 21798 + end: 21801 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21823 + end: 21824 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 172 + span: + start: 21817 + end: 21822 + right: + kind: + GenericCall: + id: 43 + type_args: + - 170 + - 169 + arguments: [] + ty: 172 + span: + start: 21825 + end: 21844 + ty: 172 + span: + start: 21817 + end: 21844 + ty: 171 + span: + start: 21798 + end: 21844 + ty: 171 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 178 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 176 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 177 + span: + start: 21924 + end: 21933 + result: + inner: 176 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 176 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 176 + expected_type: 176 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 177 + span: + start: 21957 + end: 21960 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21982 + end: 21983 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 177 + span: + start: 21976 + end: 21981 + right: + kind: + GenericCall: + id: 43 + type_args: + - 175 + - 174 + arguments: [] + ty: 177 + span: + start: 21984 + end: 22003 + ty: 177 + span: + start: 21976 + end: 22003 + ty: 176 + span: + start: 21957 + end: 22003 + ty: 176 + span: + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22035 + end: 22038 + type_params: + - name: + inner: 57 + span: + start: 22050 + end: 22053 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22055 + end: 22061 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22071 + end: 22074 + - file_id: 0 + span: + start: 22087 + end: 22090 + - file_id: 0 + span: + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 + span: + start: 22160 + end: 22163 + - name: + inner: 65 + span: + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22077 + end: 22078 + - file_id: 0 + span: + start: 22107 + end: 22108 + - file_id: 0 + span: + start: 22157 + end: 22158 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 183 + name: + inner: 182 + span: + start: 22042 + end: 22049 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: + inner: 181 + span: + start: 22071 + end: 22078 + - mut_span: ~ + name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: + inner: 182 + span: + start: 22087 + end: 22096 + result: + inner: 181 + span: + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 181 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 181 + expected_type: 181 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 182 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 182 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 180 + - 179 + arguments: [] + ty: 182 + span: + start: 22147 + end: 22166 + ty: 182 + span: + start: 22139 + end: 22166 + ty: 181 + span: + start: 22120 + end: 22166 + ty: 181 + span: + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 + span: + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 + span: + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 188 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: + inner: 186 + span: + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: + inner: 187 + span: + start: 22250 + end: 22259 + result: + inner: 186 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 186 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 186 + expected_type: 186 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 187 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 187 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 185 + - 184 + arguments: [] + ty: 187 + span: + start: 22310 + end: 22329 + ty: 187 + span: + start: 22302 + end: 22329 + ty: 186 + span: + start: 22283 + end: 22329 + ty: 186 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 + span: + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 191 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: + inner: 190 + span: + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: + inner: 190 + span: + start: 22414 + end: 22423 + result: + inner: 190 + span: + start: 22428 + end: 22437 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 190 + expected_type: 190 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 190 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 190 + span: + start: 22469 + end: 22470 + ty: 190 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22503 + end: 22507 + ty: 190 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22512 + end: 22516 + ty: 190 + span: + start: 22511 + end: 22516 + ty: 190 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22567 + end: 22573 + ty: 190 + span: + start: 22438 + end: 22579 + - id: 402 + file_id: 1 + namespace: ~ + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 202 + span: + start: 15 + end: 19 + params: + - mut_span: ~ + name: + inner: 203 + span: + start: 20 + end: 21 + ty: + inner: 11 + span: + start: 23 + end: 26 + result: + inner: 11 + span: + start: 31 + end: 34 + accesses: + - file_id: 1 + span: + start: 129 + end: 133 + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 35 + end: 119 + locals: + - name: + inner: 203 + span: + start: 20 + end: 21 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 47 + end: 48 + kind: Read + inferred_type: 11 + expected_type: 11 + - kind: Block + label: ~ + parent: 0 + span: + start: 64 + end: 69 + locals: [] + inferred_type: 11 + expected_type: 11 + - kind: Block + label: ~ + parent: 0 + span: + start: 84 + end: 89 + locals: [] + inferred_type: 11 + expected_type: 11 + - kind: Block + label: ~ + parent: 0 + span: + start: 104 + end: 110 + locals: [] + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Match: + scrutinee: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 47 + end: 48 + arms: + - pattern: + Int: 0 + pattern_span: + start: 59 + end: 60 + body: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 11 + span: + start: 66 + end: 67 + ty: 11 + span: + start: 64 + end: 69 + - pattern: + Int: 1 + pattern_span: + start: 79 + end: 80 + body: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Int: + value: 1 + ty: 11 + span: + start: 86 + end: 87 + ty: 11 + span: + start: 84 + end: 89 + - pattern: Wildcard + pattern_span: + start: 99 + end: 100 + body: + kind: + Block: + scope_index: 3 + expressions: [] + result: + kind: + Unary: + operator: + inner: InvertSign + span: + start: 106 + end: 107 + operand: + kind: + Int: + value: 1 + ty: 11 + span: + start: 107 + end: 108 + ty: 11 + span: + start: 106 + end: 108 + ty: 11 + span: + start: 104 + end: 110 + ty: 11 + span: + start: 41 + end: 117 + ty: 11 + span: + start: 35 + end: 119 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 20 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 19 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 19 + span: + start: 425 + end: 429 + result: + inner: 19 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 22 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 21 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 21 + span: + start: 502 + end: 506 + result: + inner: 21 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 24 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 23 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 23 + span: + start: 579 + end: 583 + result: + inner: 23 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 26 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 25 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 25 + span: + start: 656 + end: 660 + result: + inner: 25 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 28 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 27 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 27 + span: + start: 733 + end: 737 + result: + inner: 27 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 30 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 29 + span: + start: 799 + end: 803 + result: + inner: 29 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 32 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 31 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 31 + span: + start: 885 + end: 889 + result: + inner: 31 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 34 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 33 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 33 + span: + start: 968 + end: 972 + result: + inner: 33 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 36 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 35 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 35 + span: + start: 1054 + end: 1058 + result: + inner: 35 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 38 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 37 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 37 + span: + start: 1131 + end: 1135 + result: + inner: 37 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 40 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 39 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 39 + span: + start: 1208 + end: 1212 + result: + inner: 39 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 42 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 41 + span: + start: 1283 + end: 1287 + result: + inner: 41 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 50 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 44 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 46 + span: + start: 20204 + end: 20214 + result: + inner: 49 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 46 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 49 + expected_type: 49 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 46 + span: + start: 20266 + end: 20271 + ty: 49 + span: + start: 20248 + end: 20272 + ty: 49 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 44 + span: + start: 20306 + end: 20310 + result: + inner: 46 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 46 + expected_type: 46 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20348 + end: 20352 + ty: 46 + span: + start: 20336 + end: 20353 + ty: 46 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 201 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 202 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 206 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 207 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: + - file_id: 1 + span: + start: 106 + end: 107 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 208 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 213 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 215 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 216 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 217 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 218 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 219 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 220 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 221 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 222 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 223 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 224 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 225 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 226 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 227 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 228 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 229 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 218 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 219 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 220 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 230 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 231 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 224 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 225 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 226 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 227 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 232 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 229 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 233 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 234 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 235 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 236 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 237 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 238 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 239 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 240 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 241 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 242 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 206 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 207 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 208 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 213 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 215 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 216 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 217 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 206 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 207 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 208 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 213 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 215 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 216 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 217 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 136 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 135 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 245 + - 134 + arguments: [] + ty: 137 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 245 + - 134 + arguments: [] + ty: 137 + span: + start: 20570 + end: 20585 + ty: 135 + span: + start: 20533 + end: 20587 + ty: 135 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 138 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 137 + span: + start: 20636 + end: 20645 + result: + inner: 135 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 137 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 248 + - 134 + arguments: [] + ty: 137 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 137 + span: + start: 20720 + end: 20725 + ty: 137 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 248 + - 134 + arguments: [] + ty: 137 + span: + start: 20680 + end: 20695 + ty: 135 + span: + start: 20665 + end: 20727 + ty: 135 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 151 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 141 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 149 + span: + start: 20829 + end: 20846 + result: + inner: 150 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 144 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 141 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 142 + span: + start: 20929 + end: 20930 + result: + inner: 143 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 143 + expected_type: 143 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 140 + - 142 + arguments: [] + ty: 149 + span: + start: 20984 + end: 21001 + ty: 143 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21029 + end: 21032 + ty: 142 + memory: 140 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 142 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21052 + end: 21055 + ty: 143 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 148 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 141 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 145 + span: + start: 21128 + end: 21143 + result: + inner: 147 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 145 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 147 + expected_type: 147 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 140 + - 146 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 140 + - 146 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21236 + end: 21239 + ty: 149 + span: + start: 21217 + end: 21240 + ty: 254 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21272 + end: 21275 + ty: 147 + span: + start: 21174 + end: 21286 + ty: 147 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 196 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 194 + span: + start: 22645 + end: 22649 + result: + inner: 195 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 195 + expected_type: 195 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22684 + end: 22688 + ty: 195 + span: + start: 22674 + end: 22689 + ty: 195 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 198 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 194 + span: + start: 22726 + end: 22730 + result: + inner: 197 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 197 + expected_type: 197 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22763 + end: 22767 + ty: 197 + span: + start: 22753 + end: 22768 + ty: 197 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 24773 + end: 24775 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24766 + end: 24768 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24761 + end: 24765 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24769 + end: 24772 + ty: 16 + span: + start: 24761 + end: 24772 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24781 + end: 24783 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24776 + end: 24780 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24784 + end: 24787 + ty: 16 + span: + start: 24776 + end: 24787 + ty: 16 + span: + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: + trait_index: 0 + ? - Type + - 23 + : Trait: + trait_index: 1 + ? - Type + - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 + : TypeSet: + typeset_index: 1 + ? - Type + - 158 + : TypeSet: + typeset_index: 0 + ? - Type + - 159 + : Trait: + trait_index: 12 + ? - Type + - 160 + : Trait: + trait_index: 13 + ? - Type + - 161 + : TraitAssocType: + trait_index: 13 + assoc_name: 161 + ? - Type + - 167 + : Struct: + struct_index: 0 + ? - Type + - 172 + : Trait: + trait_index: 15 + ? - Type + - 176 + : Module: + namespace_idx: 1 + ? - Value + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 + ? - Value + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 + : Function: + func_index: 26 + ? - Value + - 102 + : Function: + func_index: 27 + ? - Value + - 103 + : Function: + func_index: 28 + ? - Value + - 104 + : Function: + func_index: 29 + ? - Value + - 105 + : Function: + func_index: 30 + ? - Value + - 106 + : Function: + func_index: 31 + ? - Value + - 107 + : Function: + func_index: 32 + ? - Value + - 108 + : Function: + func_index: 33 + ? - Value + - 109 + : Function: + func_index: 34 + ? - Value + - 110 + : Function: + func_index: 35 + ? - Value + - 111 + : Function: + func_index: 36 + ? - Value + - 112 + : Function: + func_index: 37 + ? - Value + - 113 + : Function: + func_index: 38 + ? - Value + - 114 + : Function: + func_index: 39 + ? - Value + - 115 + : Function: + func_index: 40 + ? - Value + - 116 + : Function: + func_index: 41 + ? - Value + - 117 + : Function: + func_index: 42 + ? - Value + - 118 + : Function: + func_index: 43 + ? - Value + - 119 + : Function: + func_index: 44 + ? - Value + - 120 + : Function: + func_index: 45 + ? - Value + - 121 + : Function: + func_index: 46 + ? - Value + - 122 + : Function: + func_index: 47 + ? - Value + - 123 + : Function: + func_index: 48 + ? - Value + - 124 + : Function: + func_index: 49 + ? - Value + - 125 + : Function: + func_index: 50 + ? - Value + - 126 + : Function: + func_index: 51 + ? - Value + - 127 + : Function: + func_index: 52 + ? - Value + - 128 + : Function: + func_index: 53 + ? - Value + - 129 + : Function: + func_index: 54 + ? - Value + - 130 + : Function: + func_index: 55 + ? - Value + - 131 + : Function: + func_index: 56 + ? - Value + - 132 + : Function: + func_index: 57 + ? - Value + - 133 + : Function: + func_index: 58 + ? - Value + - 134 + : Function: + func_index: 59 + ? - Value + - 135 + : Function: + func_index: 60 + ? - Value + - 136 + : Function: + func_index: 61 + ? - Value + - 137 + : Function: + func_index: 62 + ? - Value + - 138 + : Function: + func_index: 63 + ? - Value + - 139 + : Function: + func_index: 64 + ? - Value + - 140 + : Function: + func_index: 65 + ? - Value + - 141 + : Function: + func_index: 66 + ? - Value + - 142 + : Function: + func_index: 67 + ? - Value + - 143 + : Function: + func_index: 68 + ? - Value + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 + : Const: + const_index: 1 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: [] +enums: [] +exports: + 202: + Function: + internal_name: + inner: 202 + span: + start: 129 + end: 133 + external_name: ~ + id: 402 +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 133 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 133 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 45 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 204 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 + span: + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 + span: + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 + span: + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 + accesses: + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 + accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 + - file_id: 1 + span: + start: 23 + end: 26 + - file_id: 1 + span: + start: 31 + end: 34 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 + span: + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 + span: + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 + span: + start: 13511 + end: 13514 + - file_id: 0 + span: + start: 13612 + end: 13615 + - file_id: 0 + span: + start: 13737 + end: 13740 + - file_id: 0 + span: + start: 13749 + end: 13752 + - file_id: 0 + span: + start: 13875 + end: 13878 + - file_id: 0 + span: + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 + span: + start: 14280 + end: 14283 + - file_id: 0 + span: + start: 14292 + end: 14295 + - file_id: 0 + span: + start: 14402 + end: 14405 + - file_id: 0 + span: + start: 14518 + end: 14521 + - file_id: 0 + span: + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 + span: + start: 18219 + end: 18222 + - file_id: 0 + span: + start: 18231 + end: 18234 + - file_id: 0 + span: + start: 18359 + end: 18362 + - file_id: 0 + span: + start: 18371 + end: 18374 + - file_id: 0 + span: + start: 18502 + end: 18505 + - file_id: 0 + span: + start: 18514 + end: 18517 + - file_id: 0 + span: + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - id: 5 + file_id: 0 + namespace: 0 + pub_span: + start: 151 + end: 154 + name: + inner: 7 + span: + start: 160 + end: 163 + attributes: + - Intrinsic + type_params: [] + body: 10 + accesses: + - file_id: 0 + span: + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 + - file_id: 0 + span: + start: 3750 + end: 3753 + - file_id: 0 + span: + start: 3758 + end: 3761 + - file_id: 0 + span: + start: 4060 + end: 4063 + - file_id: 0 + span: + start: 4068 + end: 4071 + - file_id: 0 + span: + start: 4076 + end: 4079 + - file_id: 0 + span: + start: 4712 + end: 4715 + - file_id: 0 + span: + start: 4720 + end: 4723 + - file_id: 0 + span: + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 + span: + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 + file_id: 0 + namespace: 0 + pub_span: + start: 179 + end: 182 + name: + inner: 8 + span: + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 + accesses: + - file_id: 0 + span: + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 + - file_id: 0 + span: + start: 10297 + end: 10300 + - file_id: 0 + span: + start: 10309 + end: 10312 + - file_id: 0 + span: + start: 10431 + end: 10434 + - file_id: 0 + span: + start: 10443 + end: 10446 + - file_id: 0 + span: + start: 10776 + end: 10779 + - file_id: 0 + span: + start: 10788 + end: 10791 + - file_id: 0 + span: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 - file_id: 0 span: - start: 5989 - end: 6004 + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 21 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 119 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__parse_import_with_alias.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__parse_import_with_alias.snap index fb9f440..a965f59 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__parse_import_with_alias.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__parse_import_with_alias.snap @@ -26,217 +26,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 19 + - 19 + - 19 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 21 + - 21 + - 21 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 23 + - 23 + - 23 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 25 + - 25 + - 25 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 27 + - 27 + - 27 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 29 + - 29 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 31 + - 31 + - 31 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 33 + - 33 + - 33 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 35 + - 35 + - 35 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 37 + - 37 + - 37 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 39 + - 39 + - 39 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 41 + - 41 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 20 - mutable: false + memory: 44 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 22 + trait_index: 12 + assoc_name: 62 + base: 46 - Function: signature: items: - - 20 - - 22 - - 25 + - 44 + - 46 + - 49 params_count: 2 - Function: signature: items: - - 20 - - 22 + - 44 + - 46 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 19 + trait_index: 14 + assoc_name: 61 + base: 43 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 28 + trait_index: 12 + assoc_name: 62 + base: 52 - Function: signature: items: - - 19 - - 28 - - 29 + - 43 + - 52 + - 53 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 31 + trait_index: 14 + assoc_name: 61 + base: 55 - Function: signature: items: - - 31 - - 32 + - 55 + - 56 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 35 - memory: 34 - mutable: false + of: 59 + memory: 58 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 34 + trait_index: 14 + assoc_name: 61 + base: 58 - Function: signature: items: - - 36 - - 37 + - 60 + - 61 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 40 - memory: 39 - mutable: false + of: 64 + memory: 63 + ownership: Shared - Pointer: - to: 40 - memory: 39 - mutable: false + to: 64 + memory: 63 + ownership: Shared - Function: signature: items: - - 41 - - 42 + - 65 + - 66 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 45 - memory: 44 - mutable: false + to: 69 + memory: 68 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 44 + trait_index: 14 + assoc_name: 61 + base: 68 - Slice: - of: 45 - memory: 44 - mutable: false + of: 69 + memory: 68 + ownership: Shared - Function: signature: items: - - 46 - - 47 - - 48 + - 70 + - 71 + - 72 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 50 + trait_index: 14 + assoc_name: 61 + base: 74 - Function: signature: items: - - 51 + - 75 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 53 + trait_index: 14 + assoc_name: 61 + base: 77 - Function: signature: items: - - 54 + - 78 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 56 - mutable: true + memory: 80 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 56 + trait_index: 14 + assoc_name: 61 + base: 80 - Function: signature: items: - - 57 + - 81 - 6 - - 58 + - 82 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 61 - mutable: true + memory: 85 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 63 - mutable: false + memory: 87 + ownership: Shared - Function: signature: items: - - 62 - - 64 - - 60 + - 86 + - 88 + - 84 - 2 params_count: 3 - Function: @@ -269,6 +399,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -377,14 +561,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 89 + trait_index: 14 + assoc_name: 61 + base: 132 - TypeParam: owner: ImplBlock: 2 @@ -392,248 +647,263 @@ types: - Struct: struct_index: 0 args: - - 91 + - 134 - Function: signature: items: - - 92 + - 135 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 91 + trait_index: 14 + assoc_name: 61 + base: 134 - Function: signature: items: - - 94 - - 92 + - 137 + - 135 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 96 + trait_index: 15 + assoc_name: 57 + base: 139 - Pointer: - to: 96 - memory: 97 - mutable: true + to: 139 + memory: 140 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 99 - memory: 97 - mutable: true + to: 142 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 99 - - 100 + - 141 + - 142 + - 143 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 97 + trait_index: 14 + assoc_name: 61 + base: 140 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 103 - memory: 97 - mutable: true + of: 146 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 102 - - 104 + - 141 + - 145 + - 147 params_count: 2 - Struct: struct_index: 0 args: - - 97 + - 140 - Pointer: to: 6 - memory: 97 - mutable: true + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 106 - - 107 + - 141 + - 149 + - 150 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 110 - memory: 109 - mutable: false + to: 153 + memory: 152 + ownership: Shared - Function: signature: items: - - 111 + - 154 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 114 - memory: 113 - mutable: true + to: 157 + memory: 156 + ownership: Exclusive - Function: signature: items: - - 115 + - 158 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 118 - memory: 117 - mutable: false + to: 161 + memory: 160 + ownership: Shared - Function: signature: items: - - 119 + - 162 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 122 - memory: 121 - mutable: false + to: 165 + memory: 164 + ownership: Shared - Pointer: - to: 122 - memory: 121 - mutable: true + to: 165 + memory: 164 + ownership: Exclusive - Function: signature: items: - - 123 - - 124 + - 166 + - 167 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 127 - memory: 126 - mutable: false + to: 170 + memory: 169 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 126 + trait_index: 14 + assoc_name: 61 + base: 169 - Function: signature: items: - - 128 - - 129 - - 128 + - 171 + - 172 + - 171 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 132 - memory: 131 - mutable: false + to: 175 + memory: 174 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 131 + trait_index: 14 + assoc_name: 61 + base: 174 - Function: signature: items: - - 133 - - 134 - - 133 + - 176 + - 177 + - 176 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 137 - memory: 136 - mutable: true + to: 180 + memory: 179 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 136 + trait_index: 14 + assoc_name: 61 + base: 179 - Function: signature: items: - - 138 - - 139 - - 138 + - 181 + - 182 + - 181 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 142 - memory: 141 - mutable: true + to: 185 + memory: 184 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 141 + trait_index: 14 + assoc_name: 61 + base: 184 - Function: signature: items: - - 143 - - 144 - - 143 + - 186 + - 187 + - 186 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 189 + - Function: + signature: + items: + - 190 + - 190 + - 190 params_count: 2 - TypeParam: owner: @@ -644,28 +914,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 147 - memory: 146 - mutable: false + of: 193 + memory: 192 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 146 + trait_index: 14 + assoc_name: 61 + base: 192 - Function: signature: items: - - 148 - - 149 + - 194 + - 195 params_count: 1 - Pointer: - to: 147 - memory: 146 - mutable: false + to: 193 + memory: 192 + ownership: Shared - Function: signature: items: - - 148 - - 151 + - 194 + - 197 params_count: 1 - Function: signature: @@ -692,6625 +962,4660 @@ types: - 2 params_count: 0 - FunctionItem: - id: 1 - type_args: - - 1 + id: 58 + type_args: [] - FunctionItem: - id: 2 - type_args: + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 + type_args: + - 1 + - FunctionItem: + id: 39 + type_args: - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 159 + - 247 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 159 + - 247 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 162 + - 250 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 162 + - 250 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 99 + - 142 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 103 - memory: 97 - mutable: false + to: 146 + memory: 140 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 103 + - 146 - Slice: - of: 103 - memory: 97 - mutable: false + of: 146 + memory: 140 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 117 + trait_index: 14 + assoc_name: 61 + base: 160 - FunctionItem: - id: 6 + id: 43 type_args: - - 127 - - 126 + - 170 + - 169 - FunctionItem: - id: 6 + id: 43 type_args: - - 132 - - 131 + - 175 + - 174 - FunctionItem: - id: 6 + id: 43 type_args: - - 137 - - 136 + - 180 + - 179 - FunctionItem: - id: 6 + id: 43 type_args: - - 142 - - 141 + - 185 + - 184 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 146 - mutable: false + memory: 192 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 - Namespace: namespace_idx: 2 - FunctionItem: - id: 106 + id: 402 type_args: [] diagnostics: [] functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 30 + signature_index: 54 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 19 + inner: 43 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 28 + inner: 52 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 29 + inner: 53 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 33 + signature_index: 57 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 31 + inner: 55 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 32 + inner: 56 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 38 + signature_index: 62 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 36 + inner: 60 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 37 + inner: 61 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 43 + signature_index: 67 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 41 + inner: 65 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 42 + inner: 66 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 49 + signature_index: 73 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 46 + inner: 70 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 47 + inner: 71 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 48 + inner: 72 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 52 + signature_index: 76 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 51 + inner: 75 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 55 + signature_index: 79 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 54 + inner: 78 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 59 + signature_index: 83 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 57 + inner: 81 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 58 + inner: 82 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 65 + signature_index: 89 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 62 + inner: 86 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 64 + inner: 88 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 60 + inner: 84 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 93 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 93 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 97 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 + span: + start: 3058 + end: 3059 + ty: + inner: 11 span: - start: 1813 - end: 1816 + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1863 - end: 1868 + start: 3103 + end: 3104 ty: - inner: 12 + inner: 13 + span: + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 + span: + start: 3111 + end: 3112 + ty: + inner: 13 span: - start: 1870 - end: 1873 + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 + start: 3159 + end: 3162 + - mut_span: ~ + name: + inner: 101 + span: + start: 3164 + end: 3165 + ty: + inner: 14 + span: + start: 3167 + end: 3170 result: - inner: 11 + inner: 14 span: - start: 1933 - end: 1936 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 30 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1952 - end: 1955 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 56 + inner: 104 span: - start: 1959 - end: 1972 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1973 - end: 1978 + start: 3209 + end: 3210 ty: - inner: 14 + inner: 15 + span: + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 + ty: + inner: 15 span: - start: 1980 - end: 1983 + start: 3220 + end: 3223 result: - inner: 10 + inner: 15 span: - start: 1988 - end: 1991 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 31 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 81 + signature_index: 97 name: - inner: 57 + inner: 105 span: - start: 2014 - end: 2027 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 + span: + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 + span: + start: 3270 + end: 3271 + ty: + inner: 11 span: - start: 2035 - end: 2038 + start: 3273 + end: 3276 result: inner: 11 span: - start: 2043 - end: 2046 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 32 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 98 name: - inner: 58 + inner: 106 span: - start: 2069 - end: 2082 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3315 + end: 3316 ty: - inner: 15 + inner: 13 + span: + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 span: - start: 2090 - end: 2093 + start: 3326 + end: 3329 result: - inner: 10 + inner: 13 span: - start: 2098 - end: 2101 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 33 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 99 name: - inner: 59 + inner: 107 span: - start: 2124 - end: 2137 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2145 - end: 2148 - result: - inner: 13 - span: - start: 2153 - end: 2156 - accesses: [] + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 + result: + inner: 14 + span: + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 34 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 100 name: - inner: 60 + inner: 108 span: - start: 2179 - end: 2192 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3421 + end: 3422 ty: - inner: 14 + inner: 15 span: - start: 2200 - end: 2203 + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 + span: + start: 3429 + end: 3430 + ty: + inner: 15 + span: + start: 3432 + end: 3435 result: - inner: 12 + inner: 15 span: - start: 2208 - end: 2211 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 35 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 97 name: - inner: 61 + inner: 109 span: - start: 2234 - end: 2247 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2248 - end: 2253 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 span: - start: 2255 - end: 2258 + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 + span: + start: 3482 + end: 3483 + ty: + inner: 11 + span: + start: 3485 + end: 3488 result: - inner: 13 + inner: 11 span: - start: 2263 - end: 2266 - accesses: [] + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 36 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 98 name: - inner: 62 + inner: 110 span: - start: 2289 - end: 2302 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3527 + end: 3528 ty: - inner: 15 + inner: 13 span: - start: 2310 - end: 2313 + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 + span: + start: 3535 + end: 3536 + ty: + inner: 13 + span: + start: 3538 + end: 3541 result: - inner: 12 + inner: 13 span: - start: 2318 - end: 2321 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 37 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 99 name: - inner: 63 + inner: 111 span: - start: 2344 - end: 2359 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3580 + end: 3581 + ty: + inner: 14 + span: + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 + span: + start: 3588 + end: 3589 ty: inner: 14 span: - start: 2367 - end: 2370 + start: 3591 + end: 3594 result: - inner: 15 + inner: 14 span: - start: 2375 - end: 2378 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 38 + - id: 75 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3618 + end: 3621 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 100 name: - inner: 64 + inner: 112 span: - start: 2401 - end: 2415 + start: 3625 + end: 3632 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 span: - start: 2416 - end: 2421 + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 + span: + start: 3641 + end: 3642 ty: inner: 15 span: - start: 2423 - end: 2426 + start: 3644 + end: 3647 result: - inner: 14 + inner: 15 span: - start: 2431 - end: 2434 - accesses: [] + start: 3652 + end: 3655 + accesses: + - file_id: 0 + span: + start: 12438 + end: 12445 attributes: - Intrinsic body: ~ - - id: 80 + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 112 + signature_index: 97 name: - inner: 93 + inner: 113 span: - start: 4588 - end: 4592 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 111 + inner: 11 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 111 - expected_type: 111 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 111 - span: - start: 4632 - end: 4633 - ty: 111 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 116 + signature_index: 101 name: - inner: 94 - span: - start: 4671 - end: 4679 - params: [] - result: - inner: 115 + inner: 114 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 115 - expected_type: 115 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 115 - span: - start: 4723 - end: 4724 - ty: 115 + start: 3731 + end: 3738 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3739 + end: 3740 + ty: + inner: 10 + span: + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 + result: + inner: 10 + span: + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3777 + end: 3780 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 120 + signature_index: 98 name: - inner: 95 + inner: 115 span: - start: 4762 - end: 4769 + start: 3784 + end: 3791 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3792 + end: 3793 + ty: + inner: 13 + span: + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 span: - start: 4786 - end: 4789 + start: 3800 + end: 3801 ty: - inner: 119 + inner: 13 span: - start: 4791 - end: 4798 + start: 3803 + end: 3806 result: - inner: 16 + inner: 13 span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 119 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 171 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 171 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3811 + end: 3814 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 - span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: - inner: 13 - span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 125 + signature_index: 102 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 123 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 124 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 123 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 124 - expected_type: 124 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 124 - span: - start: 4936 - end: 4939 - ty: 124 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 - span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 - span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3883 + end: 3886 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 130 + signature_index: 99 name: - inner: 98 + inner: 117 span: - start: 4977 - end: 4980 + start: 3890 + end: 3897 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3898 + end: 3899 ty: - inner: 128 + inner: 14 span: - start: 5002 - end: 5009 + start: 3901 + end: 3904 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3906 + end: 3907 ty: - inner: 129 + inner: 14 span: - start: 5018 - end: 5027 + start: 3909 + end: 3912 result: - inner: 128 + inner: 14 span: - start: 5032 - end: 5039 - accesses: [] + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 128 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 128 - expected_type: 128 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 129 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 129 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 127 - - 126 - arguments: [] - ty: 129 - span: - start: 5078 - end: 5097 - ty: 129 - span: - start: 5070 - end: 5097 - ty: 128 - span: - start: 5051 - end: 5097 - ty: 128 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 81 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 - span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 - span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 135 + signature_index: 100 name: - inner: 99 + inner: 118 span: - start: 5136 - end: 5139 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 3951 + end: 3952 ty: - inner: 133 + inner: 15 span: - start: 5161 - end: 5168 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 3959 + end: 3960 ty: - inner: 134 + inner: 15 span: - start: 5177 - end: 5186 + start: 3962 + end: 3965 result: - inner: 133 + inner: 15 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 133 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 133 - expected_type: 133 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 134 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 134 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 132 - - 131 - arguments: [] - ty: 134 - span: - start: 5237 - end: 5256 - ty: 134 - span: - start: 5229 - end: 5256 - ty: 133 - span: - start: 5210 - end: 5256 - ty: 133 + start: 3970 + end: 3973 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 12539 + end: 12546 + attributes: + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 3989 + end: 3992 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 119 + span: + start: 3996 + end: 4003 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: - inner: 13 + start: 4004 + end: 4005 + ty: + inner: 11 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4007 + end: 4010 + - mut_span: ~ + name: + inner: 101 + span: + start: 4012 + end: 4013 + ty: + inner: 11 + span: + start: 4015 + end: 4018 + result: + inner: 11 + span: + start: 4023 + end: 4026 + accesses: + - file_id: 0 + span: + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4042 + end: 4045 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 140 + signature_index: 101 name: - inner: 100 + inner: 120 span: - start: 5295 - end: 5302 + start: 4049 + end: 4056 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4057 + end: 4058 ty: - inner: 138 + inner: 10 span: - start: 5324 - end: 5335 + start: 4060 + end: 4063 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4065 + end: 4066 ty: - inner: 139 + inner: 10 span: - start: 5344 - end: 5353 + start: 4068 + end: 4071 result: - inner: 138 + inner: 10 span: - start: 5358 - end: 5369 - accesses: [] + start: 4076 + end: 4079 + accesses: + - file_id: 0 + span: + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 138 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 138 - expected_type: 138 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 139 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 139 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 137 - - 136 - arguments: [] - ty: 139 - span: - start: 5408 - end: 5427 - ty: 139 - span: - start: 5400 - end: 5427 - ty: 138 - span: - start: 5381 - end: 5427 - ty: 138 - span: - start: 5370 - end: 5439 - - id: 87 + - Intrinsic + body: ~ + - id: 84 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 + start: 4095 + end: 4098 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 121 + span: + start: 4102 + end: 4109 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: + start: 4110 + end: 4111 + ty: inner: 13 span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4113 + end: 4116 + - mut_span: ~ + name: + inner: 101 + span: + start: 4118 + end: 4119 + ty: + inner: 13 + span: + start: 4121 + end: 4124 + result: + inner: 13 + span: + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 + attributes: + - Intrinsic + body: ~ + - id: 85 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 145 + signature_index: 102 name: - inner: 101 + inner: 122 span: - start: 5466 - end: 5473 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4163 + end: 4164 ty: - inner: 143 + inner: 12 span: - start: 5495 - end: 5506 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4171 + end: 4172 ty: - inner: 144 + inner: 12 span: - start: 5515 - end: 5524 + start: 4174 + end: 4177 result: - inner: 143 + inner: 12 span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 143 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 143 - expected_type: 143 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 144 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 144 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 142 - - 141 - arguments: [] - ty: 144 - span: - start: 5579 - end: 5598 - ty: 144 - span: - start: 5571 - end: 5598 - ty: 143 - span: - start: 5552 - end: 5598 - ty: 143 + start: 4182 + end: 4185 + accesses: + - file_id: 0 span: - start: 5541 - end: 5610 - - id: 107 - file_id: 1 - namespace: ~ + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 + file_id: 0 + namespace: 0 parent: ~ - pub_span: ~ + pub_span: + start: 4201 + end: 4204 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 156 + signature_index: 97 name: - inner: 120 + inner: 123 span: - start: 86 - end: 90 - params: [] - result: ~ + start: 4208 + end: 4218 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4219 + end: 4220 + ty: + inner: 11 + span: + start: 4222 + end: 4225 + - mut_span: ~ + name: + inner: 101 + span: + start: 4227 + end: 4228 + ty: + inner: 11 + span: + start: 4230 + end: 4233 + result: + inner: 11 + span: + start: 4238 + end: 4241 accesses: - - file_id: 1 + - file_id: 0 span: - start: 131 - end: 135 - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 93 - end: 120 - locals: [] - inferred_type: 2 - expected_type: 2 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - Call: - callee: - kind: - NamespaceAccess: - namespace: - inner: 179 - span: - start: 99 - end: 106 - member: - kind: - Function: - id: 106 - ty: 180 - span: - start: 108 - end: 111 - ty: 180 - span: - start: 99 - end: 111 - arguments: - - kind: - Int: - value: 0 - ty: 10 - span: - start: 112 - end: 113 - - kind: - Int: - value: 0 - ty: 10 - span: - start: 115 - end: 116 - ty: 2 - span: - start: 99 - end: 117 - result: ~ - ty: 2 + start: 6924 + end: 6934 + - file_id: 0 span: - start: 93 - end: 120 - - id: 68 + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4257 + end: 4260 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 26 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 79 + inner: 124 span: - start: 3404 - end: 3408 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4275 + end: 4276 ty: - inner: 20 + inner: 13 span: - start: 3409 - end: 3413 + start: 4278 + end: 4281 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4283 + end: 4284 ty: - inner: 22 + inner: 13 span: - start: 3422 - end: 3432 + start: 4286 + end: 4289 result: - inner: 25 + inner: 13 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 22 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 25 - expected_type: 25 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 22 - span: - start: 3484 - end: 3489 - ty: 25 - span: - start: 3466 - end: 3490 - ty: 25 + start: 4294 + end: 4297 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 9522 + end: 9532 + - file_id: 0 + span: + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4313 + end: 4316 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 81 + inner: 125 span: - start: 3519 - end: 3523 + start: 4320 + end: 4329 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4330 + end: 4331 ty: - inner: 20 + inner: 11 span: - start: 3524 - end: 3528 + start: 4333 + end: 4336 + - mut_span: ~ + name: + inner: 101 + span: + start: 4338 + end: 4339 + ty: + inner: 11 + span: + start: 4341 + end: 4344 result: - inner: 22 + inner: 11 span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 22 - expected_type: 22 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3566 - end: 3570 - ty: 22 - span: - start: 3554 - end: 3571 - ty: 22 + start: 4349 + end: 4352 + accesses: + - file_id: 0 span: - start: 3544 - end: 3577 - - id: 72 + start: 7032 + end: 7041 + - file_id: 0 + span: + start: 8300 + end: 8309 + - file_id: 0 + span: + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 + attributes: + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3718 - end: 3721 - type_params: - - name: - inner: 13 - span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 93 + start: 4368 + end: 4371 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 84 + inner: 126 span: - start: 3725 - end: 3727 - params: [] + start: 4375 + end: 4384 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4385 + end: 4386 + ty: + inner: 13 + span: + start: 4388 + end: 4391 + - mut_span: ~ + name: + inner: 101 + span: + start: 4393 + end: 4394 + ty: + inner: 13 + span: + start: 4396 + end: 4399 result: - inner: 92 + inner: 13 span: - start: 3736 - end: 3740 + start: 4404 + end: 4407 accesses: - file_id: 0 span: - start: 4226 - end: 4228 + start: 9630 + end: 9639 + - file_id: 0 + span: + start: 10898 + end: 10907 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 159 - - 91 - arguments: [] - ty: 94 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 159 - - 91 - arguments: [] - ty: 94 - span: - start: 3788 - end: 3803 - ty: 92 - span: - start: 3751 - end: 3805 - ty: 92 - span: - start: 3741 - end: 3811 - - id: 73 + - Intrinsic + body: ~ + - id: 90 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 95 + start: 4423 + end: 4426 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 85 + inner: 127 span: - start: 3838 - end: 3843 + start: 4430 + end: 4440 params: - mut_span: ~ name: - inner: 86 + inner: 100 + span: + start: 4441 + end: 4442 + ty: + inner: 11 span: - start: 3847 - end: 3852 + start: 4444 + end: 4447 + - mut_span: ~ + name: + inner: 101 + span: + start: 4449 + end: 4450 ty: - inner: 94 + inner: 11 span: - start: 3854 - end: 3863 + start: 4452 + end: 4455 result: - inner: 92 + inner: 11 span: - start: 3868 - end: 3872 + start: 4460 + end: 4463 accesses: - file_id: 0 span: - start: 4470 - end: 4475 + start: 7141 + end: 7151 + - file_id: 0 + span: + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 94 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 162 - - 91 - arguments: [] - ty: 94 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 94 - span: - start: 3938 - end: 3943 - ty: 94 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 162 - - 91 - arguments: [] - ty: 94 - span: - start: 3898 - end: 3913 - ty: 92 - span: - start: 3883 - end: 3945 - ty: 92 + - Intrinsic + body: ~ + - id: 91 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4479 + end: 4482 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 128 + span: + start: 4486 + end: 4496 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4497 + end: 4498 + ty: + inner: 13 + span: + start: 4500 + end: 4503 + - mut_span: ~ + name: + inner: 101 + span: + start: 4505 + end: 4506 + ty: + inner: 13 + span: + start: 4508 + end: 4511 + result: + inner: 13 + span: + start: 4516 + end: 4519 + accesses: + - file_id: 0 span: - start: 3873 - end: 3951 - - id: 76 + start: 9739 + end: 9749 + - file_id: 0 + span: + start: 11040 + end: 11050 + attributes: + - Intrinsic + body: ~ + - id: 92 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4535 + end: 4538 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 108 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 88 + inner: 129 span: - start: 4007 - end: 4014 + start: 4542 + end: 4549 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4550 + end: 4551 ty: - inner: 98 + inner: 11 span: - start: 4021 - end: 4041 + start: 4553 + end: 4556 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4558 + end: 4559 ty: - inner: 106 + inner: 11 span: - start: 4051 - end: 4068 + start: 4561 + end: 4564 result: - inner: 107 + inner: 11 span: - start: 4073 - end: 4091 + start: 4569 + end: 4572 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 7245 + end: 7252 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 93 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: + parent: ~ + pub_span: + start: 4588 + end: 4591 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 130 + span: + start: 4595 + end: 4602 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4603 + end: 4604 + ty: inner: 13 span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 101 + start: 4606 + end: 4609 + - mut_span: ~ + name: + inner: 101 + span: + start: 4611 + end: 4612 + ty: + inner: 13 + span: + start: 4614 + end: 4617 + result: + inner: 13 + span: + start: 4622 + end: 4625 + accesses: + - file_id: 0 + span: + start: 9843 + end: 9850 + - file_id: 0 + span: + start: 11177 + end: 11184 + attributes: + - Intrinsic + body: ~ + - id: 94 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4641 + end: 4644 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 90 + inner: 131 span: - start: 4115 - end: 4120 + start: 4648 + end: 4655 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4656 + end: 4657 ty: - inner: 98 + inner: 11 span: - start: 4130 - end: 4150 + start: 4659 + end: 4662 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4664 + end: 4665 ty: - inner: 99 + inner: 11 span: - start: 4159 - end: 4160 + start: 4667 + end: 4670 result: - inner: 100 + inner: 11 span: - start: 4165 - end: 4182 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 100 - expected_type: 100 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 97 - - 99 - arguments: [] - ty: 106 - span: - start: 4218 - end: 4235 - ty: 100 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4267 - end: 4270 - ty: 99 - memory: 97 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 99 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4290 - end: 4293 - ty: 100 + start: 4675 + end: 4678 + accesses: + - file_id: 0 span: - start: 4183 - end: 4299 - - id: 78 + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 + attributes: + - Intrinsic + body: ~ + - id: 95 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 105 + parent: ~ + pub_span: + start: 4694 + end: 4697 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 101 name: - inner: 92 + inner: 132 span: - start: 4322 - end: 4333 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4337 - end: 4341 + start: 4709 + end: 4710 ty: - inner: 98 + inner: 10 span: - start: 4343 - end: 4363 + start: 4712 + end: 4715 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4717 + end: 4718 ty: - inner: 102 + inner: 10 span: - start: 4370 - end: 4385 + start: 4720 + end: 4723 result: - inner: 104 + inner: 10 span: - start: 4390 - end: 4408 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 102 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 104 - expected_type: 104 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 97 - - 103 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 97 - - 103 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4481 - end: 4484 - ty: 106 - span: - start: 4462 - end: 4485 - ty: 168 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4517 - end: 4520 - ty: 104 - span: - start: 4419 - end: 4531 - ty: 104 + start: 4728 + end: 4731 + accesses: + - file_id: 0 span: - start: 4409 - end: 4542 - - id: 88 + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 + attributes: + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4747 + end: 4750 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 150 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 18 + inner: 133 span: - start: 5671 - end: 5674 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 5675 - end: 5679 + start: 4762 + end: 4763 ty: - inner: 148 + inner: 13 + span: + start: 4765 + end: 4768 + - mut_span: ~ + name: + inner: 101 + span: + start: 4770 + end: 4771 + ty: + inner: 13 span: - start: 5675 - end: 5679 + start: 4773 + end: 4776 result: - inner: 149 + inner: 13 span: - start: 5684 - end: 5693 - accesses: [] + start: 4781 + end: 4784 + accesses: + - file_id: 0 + span: + start: 9944 + end: 9951 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 149 - expected_type: 149 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5714 - end: 5718 - ty: 149 - span: - start: 5704 - end: 5719 - ty: 149 - span: - start: 5694 - end: 5725 - - id: 89 + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5745 - end: 5748 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 152 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 102 name: - inner: 91 + inner: 134 span: - start: 5752 - end: 5755 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4815 + end: 4816 + ty: + inner: 12 + span: + start: 4818 + end: 4821 + - mut_span: ~ + name: + inner: 101 span: - start: 5756 - end: 5760 + start: 4823 + end: 4824 ty: - inner: 148 + inner: 12 span: - start: 5756 - end: 5760 + start: 4826 + end: 4829 result: - inner: 151 + inner: 12 span: - start: 5765 - end: 5772 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 151 - expected_type: 151 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5793 - end: 5797 - ty: 151 - span: - start: 5783 - end: 5798 - ty: 151 + start: 4834 + end: 4837 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 11303 + end: 11310 + attributes: + - Intrinsic + body: ~ + - id: 98 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4853 + end: 4856 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 95 name: - inner: 104 + inner: 135 span: - start: 5887 - end: 5905 + start: 4860 + end: 4870 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 5906 - end: 5910 + start: 4871 + end: 4876 ty: - inner: 17 + inner: 11 span: - start: 5906 - end: 5910 + start: 4878 + end: 4881 result: - inner: 17 + inner: 11 span: - start: 5915 - end: 5919 - accesses: [] + start: 4886 + end: 4889 + accesses: + - file_id: 0 + span: + start: 7442 + end: 7452 + - file_id: 0 + span: + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 + - Intrinsic + body: ~ + - id: 99 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4905 + end: 4908 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 136 + span: + start: 4912 + end: 4922 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 4923 + end: 4928 + ty: + inner: 13 + span: + start: 4930 + end: 4933 + result: + inner: 13 + span: + start: 4938 + end: 4941 + accesses: + - file_id: 0 span: - start: 5920 - end: 6063 - - id: 93 + start: 10040 + end: 10050 + - file_id: 0 + span: + start: 11407 + end: 11417 + attributes: + - Intrinsic + body: ~ + - id: 100 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 4957 + end: 4960 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 103 name: - inner: 106 + inner: 137 span: - start: 6090 - end: 6108 + start: 4964 + end: 4979 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6109 - end: 6113 + start: 4980 + end: 4985 ty: - inner: 17 + inner: 11 span: - start: 6109 - end: 6113 + start: 4987 + end: 4990 result: - inner: 17 + inner: 14 span: - start: 6118 - end: 6122 + start: 4995 + end: 4998 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 - span: - start: 6123 - end: 6266 - - id: 94 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 104 name: - inner: 108 + inner: 138 span: - start: 6293 - end: 6301 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6302 - end: 6306 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6302 - end: 6306 + start: 5044 + end: 5047 result: - inner: 16 + inner: 14 span: - start: 6311 - end: 6315 + start: 5052 + end: 5055 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 - span: - start: 6316 - end: 6353 - - id: 95 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 105 name: - inner: 107 + inner: 139 span: - start: 6380 - end: 6398 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6399 - end: 6403 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6408 - end: 6412 - accesses: - - file_id: 0 - span: - start: 6141 - end: 6159 + start: 5109 + end: 5112 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 - span: - start: 6413 - end: 6455 - - id: 96 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 106 name: - inner: 105 + inner: 140 span: - start: 6482 - end: 6500 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 6501 - end: 6505 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 6510 - end: 6514 - accesses: - - file_id: 0 - span: - start: 5938 - end: 5956 + start: 5166 + end: 5169 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 - span: - start: 6515 - end: 6557 - - id: 97 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 107 name: - inner: 109 + inner: 141 span: - start: 6584 - end: 6603 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 6604 - end: 6608 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 6613 - end: 6617 + start: 5223 + end: 5226 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 108 name: - inner: 110 + inner: 142 span: - start: 6720 - end: 6734 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 6735 - end: 6739 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 6744 - end: 6748 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 109 name: - inner: 111 + inner: 143 span: - start: 6818 - end: 6839 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 6840 - end: 6844 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 6849 - end: 6853 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 110 name: - inner: 112 + inner: 144 span: - start: 7011 - end: 7030 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 7031 - end: 7035 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 7040 - end: 7044 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 108 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5413 + end: 5416 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 111 name: - inner: 113 + inner: 145 span: - start: 7213 - end: 7229 + start: 5420 + end: 5433 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5434 + end: 5439 ty: - inner: 17 + inner: 14 span: - start: 7230 - end: 7234 + start: 5441 + end: 5444 result: - inner: 16 + inner: 11 span: - start: 7239 - end: 7243 + start: 5449 + end: 5452 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 109 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5468 + end: 5471 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 112 name: - inner: 114 + inner: 146 span: - start: 7326 - end: 7343 + start: 5475 + end: 5488 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5489 + end: 5494 ty: - inner: 17 + inner: 14 span: - start: 7344 - end: 7348 + start: 5496 + end: 5499 result: - inner: 16 + inner: 10 span: - start: 7353 - end: 7357 + start: 5504 + end: 5507 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 110 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5523 + end: 5526 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 113 name: - inner: 115 + inner: 147 span: - start: 7515 - end: 7535 + start: 5530 + end: 5543 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5544 + end: 5549 ty: - inner: 17 + inner: 15 span: - start: 7536 - end: 7540 + start: 5551 + end: 5554 result: - inner: 16 + inner: 11 span: - start: 7545 - end: 7549 + start: 5559 + end: 5562 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ + - Intrinsic + body: ~ + - id: 111 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5578 + end: 5581 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 114 + name: + inner: 148 + span: + start: 5585 + end: 5598 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5599 + end: 5604 + ty: + inner: 15 + span: + start: 5606 + end: 5609 + result: + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 + name: + inner: 149 + span: + start: 5640 + end: 5653 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5654 + end: 5659 + ty: + inner: 14 + span: + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 113 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 + name: + inner: 150 + span: + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 + name: + inner: 151 + span: + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5764 + end: 5769 + ty: + inner: 15 + span: + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 + name: + inner: 152 + span: + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5819 + end: 5824 + ty: + inner: 15 + span: + start: 5826 + end: 5829 + result: + inner: 12 + span: + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 153 + span: + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 + span: + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 154 + span: + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 + span: + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 155 + name: + inner: 178 + span: + start: 21343 + end: 21347 + params: [] + result: + inner: 154 + span: + start: 21369 + end: 21376 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21377 + end: 21399 + locals: [] + inferred_type: 154 + expected_type: 154 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 154 + span: + start: 21387 + end: 21388 + ty: 154 + span: + start: 21377 + end: 21399 + - id: 376 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 159 + name: + inner: 179 + span: + start: 21426 + end: 21434 + params: [] + result: + inner: 158 + span: + start: 21456 + end: 21463 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21464 + end: 21486 + locals: [] + inferred_type: 158 + expected_type: 158 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 158 + span: + start: 21474 + end: 21475 + ty: 158 + span: + start: 21464 + end: 21486 + - id: 377 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 163 + name: + inner: 180 + span: + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: + inner: 162 + span: + start: 21542 + end: 21549 + result: + inner: 16 + span: + start: 21554 + end: 21558 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21559 + end: 21596 + locals: + - name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: 162 mut_span: ~ accesses: - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 + start: 21569 + end: 21572 kind: Read inferred_type: 16 expected_type: 16 @@ -7323,357 +5628,107 @@ functions: kind: Binary: operator: - inner: BitOr + inner: Eq span: - start: 7687 - end: 7688 + start: 21586 + end: 21588 left: kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 + Local: + scope_index: 0 + local_index: 0 + ty: 259 span: - start: 7560 - end: 7674 + start: 21569 + end: 21572 right: kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 + Int: + value: 0 + ty: 259 span: - start: 7690 - end: 7716 + start: 21589 + end: 21590 ty: 16 span: - start: 7560 - end: 7717 + start: 21569 + end: 21590 ty: 16 span: - start: 7550 - end: 7723 - - id: 104 + start: 21559 + end: 21596 + - id: 378 file_id: 0 - namespace: 0 - parent: - GenericImpl: 4 + namespace: 1 + parent: ~ pub_span: - start: 7743 - end: 7746 - type_params: [] - type_param_parent: - ImplBlock: 4 + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 168 name: - inner: 116 + inner: 181 span: - start: 7750 - end: 7766 + start: 21623 + end: 21631 params: - mut_span: ~ name: - inner: 80 + inner: 176 span: - start: 7767 - end: 7771 + start: 21648 + end: 21651 ty: - inner: 17 + inner: 166 span: - start: 7767 - end: 7771 + start: 21653 + end: 21660 result: - inner: 16 + inner: 167 span: - start: 7776 - end: 7780 + start: 21665 + end: 21672 accesses: [] attributes: - Inline @@ -7685,27 +5740,180 @@ functions: label: ~ parent: ~ span: - start: 7781 - end: 7823 + start: 21673 + end: 21697 locals: - name: - inner: 80 + inner: 176 span: - start: 7767 - end: 7771 - ty: 17 + start: 21648 + end: 21651 + ty: 166 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 167 + expected_type: 167 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 167 + span: + start: 21683 + end: 21686 + ty: 167 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 173 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 171 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 172 + span: + start: 21765 + end: 21774 + result: + inner: 171 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 171 mut_span: ~ accesses: - span: - start: 7791 - end: 7795 + start: 21798 + end: 21801 kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 172 + mut_span: ~ + accesses: - span: - start: 7806 - end: 7810 + start: 21817 + end: 21822 kind: Read - inferred_type: 16 - expected_type: 16 + inferred_type: 171 + expected_type: 171 block: kind: Block: @@ -7715,1222 +5923,24310 @@ functions: kind: Binary: operator: - inner: And + inner: Add span: - start: 7803 - end: 7805 + start: 21815 + end: 21816 left: kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7796 - end: 7798 + Local: + scope_index: 0 + local_index: 0 + ty: 172 + span: + start: 21798 + end: 21801 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21823 + end: 21824 left: kind: Local: scope_index: 0 - local_index: 0 - ty: 17 + local_index: 1 + ty: 172 span: - start: 7791 - end: 7795 + start: 21817 + end: 21822 right: kind: - Char: - value: "!" - ty: 17 + GenericCall: + id: 43 + type_args: + - 170 + - 169 + arguments: [] + ty: 172 span: - start: 7799 - end: 7802 - ty: 16 + start: 21825 + end: 21844 + ty: 172 + span: + start: 21817 + end: 21844 + ty: 171 + span: + start: 21798 + end: 21844 + ty: 171 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 178 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 176 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 177 + span: + start: 21924 + end: 21933 + result: + inner: 176 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 176 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 176 + expected_type: 176 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 177 span: - start: 7791 - end: 7802 + start: 21957 + end: 21960 right: kind: Binary: operator: - inner: LessEq + inner: Mul span: - start: 7811 - end: 7813 + start: 21982 + end: 21983 left: kind: Local: scope_index: 0 - local_index: 0 - ty: 17 + local_index: 1 + ty: 177 span: - start: 7806 - end: 7810 + start: 21976 + end: 21981 right: kind: - Char: - value: "~" - ty: 17 + GenericCall: + id: 43 + type_args: + - 175 + - 174 + arguments: [] + ty: 177 span: - start: 7814 - end: 7817 - ty: 16 + start: 21984 + end: 22003 + ty: 177 span: - start: 7806 - end: 7817 - ty: 16 + start: 21976 + end: 22003 + ty: 176 span: - start: 7791 - end: 7817 - ty: 16 + start: 21957 + end: 22003 + ty: 176 span: - start: 7781 - end: 7823 - - id: 106 - file_id: 1 - namespace: 2 + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 parent: ~ - pub_span: ~ - type_params: [] + pub_span: + start: 22035 + end: 22038 + type_params: + - name: + inner: 57 + span: + start: 22050 + end: 22053 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22055 + end: 22061 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22071 + end: 22074 + - file_id: 0 + span: + start: 22087 + end: 22090 + - file_id: 0 + span: + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 + span: + start: 22160 + end: 22163 + - name: + inner: 65 + span: + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22077 + end: 22078 + - file_id: 0 + span: + start: 22107 + end: 22108 + - file_id: 0 + span: + start: 22157 + end: 22158 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 183 name: - inner: 119 + inner: 182 span: - start: 49 - end: 52 + start: 22042 + end: 22049 params: - mut_span: ~ name: - inner: 91 + inner: 176 span: - start: 53 - end: 56 + start: 22066 + end: 22069 ty: - inner: 10 + inner: 181 span: - start: 58 - end: 61 + start: 22071 + end: 22078 - mut_span: ~ name: - inner: 18 + inner: 171 span: - start: 63 - end: 66 + start: 22080 + end: 22085 ty: - inner: 10 + inner: 182 span: - start: 68 - end: 71 + start: 22087 + end: 22096 result: - inner: 2 + inner: 181 span: - start: 76 - end: 78 - accesses: - - file_id: 1 + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 181 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 181 + expected_type: 181 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 182 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 182 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 180 + - 179 + arguments: [] + ty: 182 + span: + start: 22147 + end: 22166 + ty: 182 + span: + start: 22139 + end: 22166 + ty: 181 + span: + start: 22120 + end: 22166 + ty: 181 span: - start: 108 - end: 111 - attributes: [] - body: ~ -globals: [] -memories: [] -namespaces: - - name: 0 + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: - trait_index: 0 - assoc_name: 10 - ? - Type - - 26 - : TypeSet: - typeset_index: 1 - ? - Type - - 66 - : TypeSet: - typeset_index: 0 - ? - Type - - 70 - : Trait: - trait_index: 0 - ? - Type - - 71 - : Trait: - trait_index: 1 - ? - Type - - 72 - : TraitAssocType: - trait_index: 1 - assoc_name: 72 - ? - Type - - 82 - : Struct: - struct_index: 0 - ? - Type - - 87 - : Trait: - trait_index: 3 - ? - Type - - 91 - : Module: - namespace_idx: 1 - ? - Value - - 1 - : Const: - const_index: 0 - ? - Value - - 4 - : Function: - func_index: 0 - ? - Value - - 11 - : Function: - func_index: 1 - ? - Value - - 12 - : Function: - func_index: 2 - ? - Value - - 15 - : Function: - func_index: 3 - ? - Value - - 16 - : Function: - func_index: 4 - ? - Value - - 19 - : Function: - func_index: 5 - ? - Value - - 20 - : Function: - func_index: 6 - ? - Value - - 21 - : Function: - func_index: 7 - ? - Value - - 25 - : Function: - func_index: 8 - ? - Value - - 30 - : Function: - func_index: 9 - ? - Value - - 34 - : Function: - func_index: 10 - ? - Value - - 36 - : Function: - func_index: 11 - ? - Value - - 37 - : Function: - func_index: 12 - ? - Value - - 39 - : Function: - func_index: 13 - ? - Value - - 41 - : Function: - func_index: 14 - ? - Value - - 42 - : Function: - func_index: 15 - ? - Value - - 43 - : Function: - func_index: 16 - ? - Value - - 44 - : Function: - func_index: 17 - ? - Value - - 45 - : Function: - func_index: 18 - ? - Value - - 46 - : Function: - func_index: 19 - ? - Value - - 47 - : Function: - func_index: 20 - ? - Value - - 48 - : Function: - func_index: 21 - ? - Value - - 49 - : Function: - func_index: 22 - ? - Value - - 50 - : Function: - func_index: 23 - ? - Value - - 51 - : Function: - func_index: 24 - ? - Value - - 52 - : Function: - func_index: 25 - ? - Value - - 53 - : Function: - func_index: 26 - ? - Value - - 54 - : Function: - func_index: 27 - ? - Value - - 55 - : Function: - func_index: 28 - ? - Value - - 56 - : Function: - func_index: 29 - ? - Value - - 57 - : Function: - func_index: 30 - ? - Value - - 58 - : Function: - func_index: 31 - ? - Value - - 59 - : Function: - func_index: 32 - ? - Value - - 60 - : Function: - func_index: 33 - ? - Value - - 61 - : Function: - func_index: 34 - ? - Value - - 62 - : Function: - func_index: 35 - ? - Value - - 63 - : Function: - func_index: 36 - ? - Value - - 64 - : Function: - func_index: 37 - ? - Value - - 102 - : Const: - const_index: 1 - wildcard_imports: [] + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 + span: + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 + span: + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 188 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: + inner: 186 + span: + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: + inner: 187 + span: + start: 22250 + end: 22259 + result: + inner: 186 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 186 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 186 + expected_type: 186 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 187 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 187 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 185 + - 184 + arguments: [] + ty: 187 + span: + start: 22310 + end: 22329 + ty: 187 + span: + start: 22302 + end: 22329 + ty: 186 + span: + start: 22283 + end: 22329 + ty: 186 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 + span: + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 191 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: + inner: 190 + span: + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: + inner: 190 + span: + start: 22414 + end: 22423 + result: + inner: 190 + span: + start: 22428 + end: 22437 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 190 + expected_type: 190 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 190 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 190 + span: + start: 22469 + end: 22470 + ty: 190 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22503 + end: 22507 + ty: 190 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22512 + end: 22516 + ty: 190 + span: + start: 22511 + end: 22516 + ty: 190 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22567 + end: 22573 + ty: 190 + span: + start: 22438 + end: 22579 + - id: 403 + file_id: 1 + namespace: ~ + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 202 + name: + inner: 205 + span: + start: 86 + end: 90 + params: [] + result: ~ + accesses: + - file_id: 1 + span: + start: 131 + end: 135 + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 93 + end: 120 + locals: [] + inferred_type: 2 + expected_type: 2 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + Call: + callee: + kind: + NamespaceAccess: + namespace: + inner: 267 + span: + start: 99 + end: 106 + member: + kind: + Function: + id: 402 + ty: 268 + span: + start: 108 + end: 111 + ty: 268 + span: + start: 99 + end: 111 + arguments: + - kind: + Int: + value: 0 + ty: 10 + span: + start: 112 + end: 113 + - kind: + Int: + value: 0 + ty: 10 + span: + start: 115 + end: 116 + ty: 2 + span: + start: 99 + end: 117 + result: ~ + ty: 2 + span: + start: 93 + end: 120 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 20 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 19 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 19 + span: + start: 425 + end: 429 + result: + inner: 19 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 22 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 21 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 21 + span: + start: 502 + end: 506 + result: + inner: 21 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 24 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 23 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 23 + span: + start: 579 + end: 583 + result: + inner: 23 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 26 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 25 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 25 + span: + start: 656 + end: 660 + result: + inner: 25 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 28 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 27 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 27 + span: + start: 733 + end: 737 + result: + inner: 27 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 30 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 29 + span: + start: 799 + end: 803 + result: + inner: 29 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 32 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 31 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 31 + span: + start: 885 + end: 889 + result: + inner: 31 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 34 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 33 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 33 + span: + start: 968 + end: 972 + result: + inner: 33 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 36 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 35 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 35 + span: + start: 1054 + end: 1058 + result: + inner: 35 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 38 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 37 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 37 + span: + start: 1131 + end: 1135 + result: + inner: 37 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 40 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 39 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 39 + span: + start: 1208 + end: 1212 + result: + inner: 39 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 42 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 41 + span: + start: 1283 + end: 1287 + result: + inner: 41 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 50 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 44 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 46 + span: + start: 20204 + end: 20214 + result: + inner: 49 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 46 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 49 + expected_type: 49 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 46 + span: + start: 20266 + end: 20271 + ty: 49 + span: + start: 20248 + end: 20272 + ty: 49 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 44 + span: + start: 20306 + end: 20310 + result: + inner: 46 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 46 + expected_type: 46 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20348 + end: 20352 + ty: 46 + span: + start: 20336 + end: 20353 + ty: 46 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 203 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 204 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 223 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 224 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 225 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 230 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 232 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 233 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 234 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 235 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 236 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 237 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 238 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 239 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 240 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 241 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 242 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 243 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 244 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 136 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 135 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 247 + - 134 + arguments: [] + ty: 137 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 247 + - 134 + arguments: [] + ty: 137 + span: + start: 20570 + end: 20585 + ty: 135 + span: + start: 20533 + end: 20587 + ty: 135 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 138 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 137 + span: + start: 20636 + end: 20645 + result: + inner: 135 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 137 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 250 + - 134 + arguments: [] + ty: 137 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 137 + span: + start: 20720 + end: 20725 + ty: 137 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 250 + - 134 + arguments: [] + ty: 137 + span: + start: 20680 + end: 20695 + ty: 135 + span: + start: 20665 + end: 20727 + ty: 135 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 151 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 141 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 149 + span: + start: 20829 + end: 20846 + result: + inner: 150 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 144 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 141 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 142 + span: + start: 20929 + end: 20930 + result: + inner: 143 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 143 + expected_type: 143 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 140 + - 142 + arguments: [] + ty: 149 + span: + start: 20984 + end: 21001 + ty: 143 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21029 + end: 21032 + ty: 142 + memory: 140 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 142 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21052 + end: 21055 + ty: 143 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 148 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 141 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 145 + span: + start: 21128 + end: 21143 + result: + inner: 147 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 145 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 147 + expected_type: 147 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 140 + - 146 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 140 + - 146 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21236 + end: 21239 + ty: 149 + span: + start: 21217 + end: 21240 + ty: 256 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21272 + end: 21275 + ty: 147 + span: + start: 21174 + end: 21286 + ty: 147 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 196 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 194 + span: + start: 22645 + end: 22649 + result: + inner: 195 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 195 + expected_type: 195 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22684 + end: 22688 + ty: 195 + span: + start: 22674 + end: 22689 + ty: 195 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 198 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 194 + span: + start: 22726 + end: 22730 + result: + inner: 197 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 197 + expected_type: 197 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22763 + end: 22767 + ty: 197 + span: + start: 22753 + end: 22768 + ty: 197 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 24773 + end: 24775 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24766 + end: 24768 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24761 + end: 24765 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24769 + end: 24772 + ty: 16 + span: + start: 24761 + end: 24772 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24781 + end: 24783 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24776 + end: 24780 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24784 + end: 24787 + ty: 16 + span: + start: 24776 + end: 24787 + ty: 16 + span: + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 + - id: 402 + file_id: 1 + namespace: 2 + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 204 + span: + start: 49 + end: 52 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 53 + end: 56 + ty: + inner: 10 + span: + start: 58 + end: 61 + - mut_span: ~ + name: + inner: 70 + span: + start: 63 + end: 66 + ty: + inner: 10 + span: + start: 68 + end: 71 + result: + inner: 2 + span: + start: 76 + end: 78 + accesses: + - file_id: 1 + span: + start: 108 + end: 111 + attributes: [] + body: ~ +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: + trait_index: 0 + ? - Type + - 23 + : Trait: + trait_index: 1 + ? - Type + - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 + : TypeSet: + typeset_index: 1 + ? - Type + - 158 + : TypeSet: + typeset_index: 0 + ? - Type + - 159 + : Trait: + trait_index: 12 + ? - Type + - 160 + : Trait: + trait_index: 13 + ? - Type + - 161 + : TraitAssocType: + trait_index: 13 + assoc_name: 161 + ? - Type + - 167 + : Struct: + struct_index: 0 + ? - Type + - 172 + : Trait: + trait_index: 15 + ? - Type + - 176 + : Module: + namespace_idx: 1 + ? - Value + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 + ? - Value + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 + : Function: + func_index: 26 + ? - Value + - 102 + : Function: + func_index: 27 + ? - Value + - 103 + : Function: + func_index: 28 + ? - Value + - 104 + : Function: + func_index: 29 + ? - Value + - 105 + : Function: + func_index: 30 + ? - Value + - 106 + : Function: + func_index: 31 + ? - Value + - 107 + : Function: + func_index: 32 + ? - Value + - 108 + : Function: + func_index: 33 + ? - Value + - 109 + : Function: + func_index: 34 + ? - Value + - 110 + : Function: + func_index: 35 + ? - Value + - 111 + : Function: + func_index: 36 + ? - Value + - 112 + : Function: + func_index: 37 + ? - Value + - 113 + : Function: + func_index: 38 + ? - Value + - 114 + : Function: + func_index: 39 + ? - Value + - 115 + : Function: + func_index: 40 + ? - Value + - 116 + : Function: + func_index: 41 + ? - Value + - 117 + : Function: + func_index: 42 + ? - Value + - 118 + : Function: + func_index: 43 + ? - Value + - 119 + : Function: + func_index: 44 + ? - Value + - 120 + : Function: + func_index: 45 + ? - Value + - 121 + : Function: + func_index: 46 + ? - Value + - 122 + : Function: + func_index: 47 + ? - Value + - 123 + : Function: + func_index: 48 + ? - Value + - 124 + : Function: + func_index: 49 + ? - Value + - 125 + : Function: + func_index: 50 + ? - Value + - 126 + : Function: + func_index: 51 + ? - Value + - 127 + : Function: + func_index: 52 + ? - Value + - 128 + : Function: + func_index: 53 + ? - Value + - 129 + : Function: + func_index: 54 + ? - Value + - 130 + : Function: + func_index: 55 + ? - Value + - 131 + : Function: + func_index: 56 + ? - Value + - 132 + : Function: + func_index: 57 + ? - Value + - 133 + : Function: + func_index: 58 + ? - Value + - 134 + : Function: + func_index: 59 + ? - Value + - 135 + : Function: + func_index: 60 + ? - Value + - 136 + : Function: + func_index: 61 + ? - Value + - 137 + : Function: + func_index: 62 + ? - Value + - 138 + : Function: + func_index: 63 + ? - Value + - 139 + : Function: + func_index: 64 + ? - Value + - 140 + : Function: + func_index: 65 + ? - Value + - 141 + : Function: + func_index: 66 + ? - Value + - 142 + : Function: + func_index: 67 + ? - Value + - 143 + : Function: + func_index: 68 + ? - Value + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 + : Const: + const_index: 1 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] + - name: 203 + parent: ~ + declaration: + Import: 0 + symbols: + ? - Value + - 204 + : Function: + func_index: 233 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 99 + end: 106 +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: + - namespace_idx: 2 + file_id: 1 + external_name: + inner: 203 + span: + start: 19 + end: 28 + internal_name: + inner: 203 + span: + start: 32 + end: 39 + lookup: + 204: + Function: + id: 402 +enums: [] +exports: + 205: + Function: + internal_name: + inner: 205 + span: + start: 131 + end: 135 + external_name: ~ + id: 403 +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 133 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 133 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 45 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 206 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 + span: + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 + span: + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 + span: + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 accesses: - - file_id: 1 + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 + accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] - - name: 118 - parent: ~ - declaration: - Import: 0 - symbols: - ? - Value - - 119 - : Function: - func_index: 69 - wildcard_imports: [] + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 + span: + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 + span: + start: 13511 + end: 13514 + - file_id: 0 + span: + start: 13612 + end: 13615 + - file_id: 0 + span: + start: 13737 + end: 13740 + - file_id: 0 + span: + start: 13749 + end: 13752 + - file_id: 0 + span: + start: 13875 + end: 13878 + - file_id: 0 + span: + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 + span: + start: 14280 + end: 14283 + - file_id: 0 + span: + start: 14292 + end: 14295 + - file_id: 0 + span: + start: 14402 + end: 14405 + - file_id: 0 + span: + start: 14518 + end: 14521 + - file_id: 0 + span: + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 + span: + start: 18219 + end: 18222 + - file_id: 0 + span: + start: 18231 + end: 18234 + - file_id: 0 + span: + start: 18359 + end: 18362 + - file_id: 0 + span: + start: 18371 + end: 18374 + - file_id: 0 + span: + start: 18502 + end: 18505 + - file_id: 0 + span: + start: 18514 + end: 18517 + - file_id: 0 + span: + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - id: 5 + file_id: 0 + namespace: 0 + pub_span: + start: 151 + end: 154 + name: + inner: 7 + span: + start: 160 + end: 163 + attributes: + - Intrinsic + type_params: [] + body: 10 accesses: + - file_id: 0 + span: + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 + - file_id: 0 + span: + start: 3750 + end: 3753 + - file_id: 0 + span: + start: 3758 + end: 3761 + - file_id: 0 + span: + start: 4060 + end: 4063 + - file_id: 0 + span: + start: 4068 + end: 4071 + - file_id: 0 + span: + start: 4076 + end: 4079 + - file_id: 0 + span: + start: 4712 + end: 4715 + - file_id: 0 + span: + start: 4720 + end: 4723 + - file_id: 0 + span: + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 + span: + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 - file_id: 1 span: - start: 99 - end: 106 -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ - name: - inner: 91 - span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: - - namespace_idx: 2 - file_id: 1 - external_name: - inner: 118 - span: - start: 19 - end: 28 - internal_name: - inner: 118 - span: - start: 32 - end: 39 - lookup: - 119: - Function: - id: 106 -enums: [] -exports: - 120: - Function: - internal_name: - inner: 120 + start: 58 + end: 61 + - file_id: 1 span: - start: 131 - end: 135 - external_name: ~ - id: 107 -structs: - - id: 71 + start: 68 + end: 71 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 file_id: 0 namespace: 0 pub_span: - start: 3581 - end: 3584 + start: 179 + end: 182 name: - inner: 82 + inner: 8 span: - start: 3592 - end: 3598 - type_params: - - name: - inner: 5 - span: - start: 3599 - end: 3602 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3604 - end: 3610 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3628 - end: 3631 - - file_id: 0 - span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 - span: - start: 3622 - end: 3626 - ty: - inner: 90 - span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 - span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 - span: - start: 3915 - end: 3919 - - name: - inner: 83 - span: - start: 3647 - end: 3652 - ty: - inner: 90 - span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 - accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 - span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 accesses: - file_id: 0 span: - start: 3686 - end: 3692 + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 - file_id: 0 span: - start: 4051 - end: 4057 + start: 10297 + end: 10300 - file_id: 0 span: - start: 4218 - end: 4224 + start: 10309 + end: 10312 - file_id: 0 span: - start: 4462 - end: 4468 -traits: - - id: 45 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 70 - span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 + start: 10431 + end: 10434 + - file_id: 0 span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] - span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 71 - span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 + start: 10443 + end: 10446 + - file_id: 0 span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] - span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 - file_id: 0 - namespace: 0 - pub_span: - start: 3259 - end: 3262 - name: - inner: 6 - span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 + start: 10776 + end: 10779 + - file_id: 0 span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3371 - end: 3375 - - file_id: 0 - span: - start: 3422 - end: 3426 - - file_id: 0 - span: - start: 3437 - end: 3441 - - file_id: 0 - span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 - file_id: 0 - namespace: 0 - pub_span: - start: 3955 - end: 3958 - name: - inner: 87 - span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 + start: 10788 + end: 10791 + - file_id: 0 span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] - span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 - span: - start: 4146 - end: 4150 - - file_id: 0 - span: - start: 4165 - end: 4169 - - file_id: 0 - span: - start: 4343 - end: 4347 - - file_id: 0 - span: - start: 4359 - end: 4363 - - file_id: 0 - span: - start: 4370 - end: 4374 - - file_id: 0 - span: - start: 4390 - end: 4394 - - file_id: 0 - span: - start: 4037 - end: 4041 - - file_id: 0 - span: - start: 4058 - end: 4062 - - file_id: 0 - span: - start: 4073 - end: 4077 - - file_id: 0 - span: - start: 4240 - end: 4244 - - file_id: 0 - span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 - span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 - file_id: 0 - - id: 53 - trait_index: 0 - type_params: [] - target: - inner: 10 - span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 - span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 - file_id: 0 - - id: 57 - trait_index: 1 - type_params: [] - target: - inner: 7 - span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 - span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 - file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 - span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 - type_params: [] - target: - inner: 13 - span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: - start: 0 - end: 3 - name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 - span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 - span: - start: 27 - end: 32 - const_value: - Int: 65536 - accesses: [] - attributes: [] - - id: 91 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: ~ - name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 - span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 - span: - start: 5836 - end: 5847 - const_value: - Int: 32 - accesses: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 - file_id: 0 span: - start: 5989 - end: 6004 + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 21 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 121 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__parse_simple_addition.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__parse_simple_addition.snap index 6845034..290b07d 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__parse_simple_addition.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__parse_simple_addition.snap @@ -26,217 +26,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 19 + - 19 + - 19 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 21 + - 21 + - 21 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 23 + - 23 + - 23 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 25 + - 25 + - 25 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 27 + - 27 + - 27 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 29 + - 29 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 31 + - 31 + - 31 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 33 + - 33 + - 33 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 35 + - 35 + - 35 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 37 + - 37 + - 37 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 39 + - 39 + - 39 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 41 + - 41 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 20 - mutable: false + memory: 44 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 22 + trait_index: 12 + assoc_name: 62 + base: 46 - Function: signature: items: - - 20 - - 22 - - 25 + - 44 + - 46 + - 49 params_count: 2 - Function: signature: items: - - 20 - - 22 + - 44 + - 46 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 19 + trait_index: 14 + assoc_name: 61 + base: 43 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 28 + trait_index: 12 + assoc_name: 62 + base: 52 - Function: signature: items: - - 19 - - 28 - - 29 + - 43 + - 52 + - 53 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 31 + trait_index: 14 + assoc_name: 61 + base: 55 - Function: signature: items: - - 31 - - 32 + - 55 + - 56 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 35 - memory: 34 - mutable: false + of: 59 + memory: 58 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 34 + trait_index: 14 + assoc_name: 61 + base: 58 - Function: signature: items: - - 36 - - 37 + - 60 + - 61 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 40 - memory: 39 - mutable: false + of: 64 + memory: 63 + ownership: Shared - Pointer: - to: 40 - memory: 39 - mutable: false + to: 64 + memory: 63 + ownership: Shared - Function: signature: items: - - 41 - - 42 + - 65 + - 66 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 45 - memory: 44 - mutable: false + to: 69 + memory: 68 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 44 + trait_index: 14 + assoc_name: 61 + base: 68 - Slice: - of: 45 - memory: 44 - mutable: false + of: 69 + memory: 68 + ownership: Shared - Function: signature: items: - - 46 - - 47 - - 48 + - 70 + - 71 + - 72 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 50 + trait_index: 14 + assoc_name: 61 + base: 74 - Function: signature: items: - - 51 + - 75 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 53 + trait_index: 14 + assoc_name: 61 + base: 77 - Function: signature: items: - - 54 + - 78 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 56 - mutable: true + memory: 80 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 56 + trait_index: 14 + assoc_name: 61 + base: 80 - Function: signature: items: - - 57 + - 81 - 6 - - 58 + - 82 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 61 - mutable: true + memory: 85 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 63 - mutable: false + memory: 87 + ownership: Shared - Function: signature: items: - - 62 - - 64 - - 60 + - 86 + - 88 + - 84 - 2 params_count: 3 - Function: @@ -269,6 +399,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -377,14 +561,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 89 + trait_index: 14 + assoc_name: 61 + base: 132 - TypeParam: owner: ImplBlock: 2 @@ -392,248 +647,263 @@ types: - Struct: struct_index: 0 args: - - 91 + - 134 - Function: signature: items: - - 92 + - 135 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 91 + trait_index: 14 + assoc_name: 61 + base: 134 - Function: signature: items: - - 94 - - 92 + - 137 + - 135 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 96 + trait_index: 15 + assoc_name: 57 + base: 139 - Pointer: - to: 96 - memory: 97 - mutable: true + to: 139 + memory: 140 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 99 - memory: 97 - mutable: true + to: 142 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 99 - - 100 + - 141 + - 142 + - 143 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 97 + trait_index: 14 + assoc_name: 61 + base: 140 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 103 - memory: 97 - mutable: true + of: 146 + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 102 - - 104 + - 141 + - 145 + - 147 params_count: 2 - Struct: struct_index: 0 args: - - 97 + - 140 - Pointer: to: 6 - memory: 97 - mutable: true + memory: 140 + ownership: Exclusive - Function: signature: items: - - 98 - - 106 - - 107 + - 141 + - 149 + - 150 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 110 - memory: 109 - mutable: false + to: 153 + memory: 152 + ownership: Shared - Function: signature: items: - - 111 + - 154 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 114 - memory: 113 - mutable: true + to: 157 + memory: 156 + ownership: Exclusive - Function: signature: items: - - 115 + - 158 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 118 - memory: 117 - mutable: false + to: 161 + memory: 160 + ownership: Shared - Function: signature: items: - - 119 + - 162 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 122 - memory: 121 - mutable: false + to: 165 + memory: 164 + ownership: Shared - Pointer: - to: 122 - memory: 121 - mutable: true + to: 165 + memory: 164 + ownership: Exclusive - Function: signature: items: - - 123 - - 124 + - 166 + - 167 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 127 - memory: 126 - mutable: false + to: 170 + memory: 169 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 126 + trait_index: 14 + assoc_name: 61 + base: 169 - Function: signature: items: - - 128 - - 129 - - 128 + - 171 + - 172 + - 171 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 132 - memory: 131 - mutable: false + to: 175 + memory: 174 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 131 + trait_index: 14 + assoc_name: 61 + base: 174 - Function: signature: items: - - 133 - - 134 - - 133 + - 176 + - 177 + - 176 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 137 - memory: 136 - mutable: true + to: 180 + memory: 179 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 136 + trait_index: 14 + assoc_name: 61 + base: 179 - Function: signature: items: - - 138 - - 139 - - 138 + - 181 + - 182 + - 181 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 142 - memory: 141 - mutable: true + to: 185 + memory: 184 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 141 + trait_index: 14 + assoc_name: 61 + base: 184 - Function: signature: items: - - 143 - - 144 - - 143 + - 186 + - 187 + - 186 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 189 + - Function: + signature: + items: + - 190 + - 190 + - 190 params_count: 2 - TypeParam: owner: @@ -644,28 +914,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 147 - memory: 146 - mutable: false + of: 193 + memory: 192 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 146 + trait_index: 14 + assoc_name: 61 + base: 192 - Function: signature: items: - - 148 - - 149 + - 194 + - 195 params_count: 1 - Pointer: - to: 147 - memory: 146 - mutable: false + to: 193 + memory: 192 + ownership: Shared - Function: signature: items: - - 148 - - 151 + - 194 + - 197 params_count: 1 - Function: signature: @@ -679,6617 +949,4444 @@ types: - 17 - 16 params_count: 1 - - Function: - signature: - items: - - 11 - - 11 - - 11 - params_count: 2 - FunctionItem: - id: 1 + id: 58 + type_args: [] + - FunctionItem: + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 type_args: - 1 - FunctionItem: - id: 2 + id: 39 type_args: - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 158 + - 245 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 158 + - 245 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 161 + - 248 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 161 + - 248 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 99 + - 142 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 103 - memory: 97 - mutable: false + to: 146 + memory: 140 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 103 + - 146 - Slice: - of: 103 - memory: 97 - mutable: false + of: 146 + memory: 140 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 117 + trait_index: 14 + assoc_name: 61 + base: 160 - FunctionItem: - id: 6 + id: 43 type_args: - - 127 - - 126 + - 170 + - 169 - FunctionItem: - id: 6 + id: 43 type_args: - - 132 - - 131 + - 175 + - 174 - FunctionItem: - id: 6 + id: 43 type_args: - - 137 - - 136 + - 180 + - 179 - FunctionItem: - id: 6 + id: 43 type_args: - - 142 - - 141 + - 185 + - 184 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 146 - mutable: false + memory: 192 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 diagnostics: [] functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 30 + signature_index: 54 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 19 + inner: 43 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 28 + inner: 52 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 29 + inner: 53 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 33 + signature_index: 57 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 31 + inner: 55 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 32 + inner: 56 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 38 + signature_index: 62 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 36 + inner: 60 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 37 + inner: 61 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 43 + signature_index: 67 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 41 + inner: 65 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 42 + inner: 66 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 49 + signature_index: 73 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 46 + inner: 70 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 47 + inner: 71 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 48 + inner: 72 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 52 + signature_index: 76 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 51 + inner: 75 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 55 + signature_index: 79 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 54 + inner: 78 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 59 + signature_index: 83 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 57 + inner: 81 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 58 + inner: 82 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 60 + - - 61 + - Equals: 84 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 65 + signature_index: 89 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 62 + inner: 86 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 64 + inner: 88 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 60 + inner: 84 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 93 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 93 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 97 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 + span: + start: 3058 + end: 3059 + ty: + inner: 11 span: - start: 1813 - end: 1816 + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1863 - end: 1868 + start: 3103 + end: 3104 ty: - inner: 12 + inner: 13 span: - start: 1870 - end: 1873 + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 + span: + start: 3111 + end: 3112 + ty: + inner: 13 + span: + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 + start: 3159 + end: 3162 + - mut_span: ~ + name: + inner: 101 + span: + start: 3164 + end: 3165 + ty: + inner: 14 + span: + start: 3167 + end: 3170 result: - inner: 11 + inner: 14 span: - start: 1933 - end: 1936 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 30 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1952 - end: 1955 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 56 + inner: 104 span: - start: 1959 - end: 1972 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1973 - end: 1978 + start: 3209 + end: 3210 ty: - inner: 14 + inner: 15 span: - start: 1980 - end: 1983 + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 + ty: + inner: 15 + span: + start: 3220 + end: 3223 result: - inner: 10 + inner: 15 span: - start: 1988 - end: 1991 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 31 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 81 + signature_index: 97 name: - inner: 57 + inner: 105 span: - start: 2014 - end: 2027 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 + span: + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 + span: + start: 3270 + end: 3271 + ty: + inner: 11 span: - start: 2035 - end: 2038 + start: 3273 + end: 3276 result: inner: 11 span: - start: 2043 - end: 2046 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 32 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 98 name: - inner: 58 + inner: 106 span: - start: 2069 - end: 2082 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3315 + end: 3316 ty: - inner: 15 + inner: 13 + span: + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 span: - start: 2090 - end: 2093 + start: 3326 + end: 3329 result: - inner: 10 + inner: 13 span: - start: 2098 - end: 2101 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 33 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 99 name: - inner: 59 + inner: 107 span: - start: 2124 - end: 2137 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2145 - end: 2148 + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 result: - inner: 13 + inner: 14 span: - start: 2153 - end: 2156 - accesses: [] + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 34 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 100 name: - inner: 60 + inner: 108 span: - start: 2179 - end: 2192 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3421 + end: 3422 ty: - inner: 14 + inner: 15 span: - start: 2200 - end: 2203 + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 + span: + start: 3429 + end: 3430 + ty: + inner: 15 + span: + start: 3432 + end: 3435 result: - inner: 12 + inner: 15 span: - start: 2208 - end: 2211 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 35 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 97 name: - inner: 61 + inner: 109 span: - start: 2234 - end: 2247 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2248 - end: 2253 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 + span: + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 span: - start: 2255 - end: 2258 + start: 3482 + end: 3483 + ty: + inner: 11 + span: + start: 3485 + end: 3488 result: - inner: 13 + inner: 11 span: - start: 2263 - end: 2266 - accesses: [] + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 36 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 98 name: - inner: 62 + inner: 110 span: - start: 2289 - end: 2302 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3527 + end: 3528 ty: - inner: 15 + inner: 13 span: - start: 2310 - end: 2313 + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 + span: + start: 3535 + end: 3536 + ty: + inner: 13 + span: + start: 3538 + end: 3541 result: - inner: 12 + inner: 13 span: - start: 2318 - end: 2321 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 37 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 99 name: - inner: 63 + inner: 111 span: - start: 2344 - end: 2359 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3580 + end: 3581 + ty: + inner: 14 + span: + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 + span: + start: 3588 + end: 3589 ty: inner: 14 span: - start: 2367 - end: 2370 + start: 3591 + end: 3594 result: - inner: 15 + inner: 14 span: - start: 2375 - end: 2378 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 38 + - id: 75 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3618 + end: 3621 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 100 name: - inner: 64 + inner: 112 span: - start: 2401 - end: 2415 + start: 3625 + end: 3632 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 + span: + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 span: - start: 2416 - end: 2421 + start: 3641 + end: 3642 ty: inner: 15 span: - start: 2423 - end: 2426 + start: 3644 + end: 3647 result: - inner: 14 + inner: 15 span: - start: 2431 - end: 2434 - accesses: [] + start: 3652 + end: 3655 + accesses: + - file_id: 0 + span: + start: 12438 + end: 12445 attributes: - Intrinsic body: ~ - - id: 80 + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 112 + signature_index: 97 name: - inner: 93 + inner: 113 span: - start: 4588 - end: 4592 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 111 + inner: 11 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 111 - expected_type: 111 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 111 - span: - start: 4632 - end: 4633 - ty: 111 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 116 + signature_index: 101 name: - inner: 94 + inner: 114 span: - start: 4671 - end: 4679 - params: [] + start: 3731 + end: 3738 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3739 + end: 3740 + ty: + inner: 10 + span: + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 result: - inner: 115 + inner: 10 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 115 - expected_type: 115 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 115 - span: - start: 4723 - end: 4724 - ty: 115 + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3777 + end: 3780 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 120 + signature_index: 98 name: - inner: 95 + inner: 115 span: - start: 4762 - end: 4769 + start: 3784 + end: 3791 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3792 + end: 3793 + ty: + inner: 13 + span: + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 span: - start: 4786 - end: 4789 + start: 3800 + end: 3801 ty: - inner: 119 + inner: 13 span: - start: 4791 - end: 4798 + start: 3803 + end: 3806 result: - inner: 16 + inner: 13 span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 119 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 170 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 170 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3811 + end: 3814 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 - span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: - inner: 13 - span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 125 + signature_index: 102 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 123 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 124 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 123 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 124 - expected_type: 124 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 124 - span: - start: 4936 - end: 4939 - ty: 124 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 + start: 3883 + end: 3886 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 117 + span: + start: 3890 + end: 3897 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 + start: 3898 + end: 3899 + ty: + inner: 14 span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3901 + end: 3904 + - mut_span: ~ + name: + inner: 101 + span: + start: 3906 + end: 3907 + ty: + inner: 14 + span: + start: 3909 + end: 3912 + result: + inner: 14 + span: + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 + attributes: + - Intrinsic + body: ~ + - id: 81 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 130 + signature_index: 100 name: - inner: 98 + inner: 118 span: - start: 4977 - end: 4980 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3951 + end: 3952 ty: - inner: 128 + inner: 15 span: - start: 5002 - end: 5009 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3959 + end: 3960 ty: - inner: 129 + inner: 15 span: - start: 5018 - end: 5027 + start: 3962 + end: 3965 result: - inner: 128 + inner: 15 span: - start: 5032 - end: 5039 - accesses: [] + start: 3970 + end: 3973 + accesses: + - file_id: 0 + span: + start: 12539 + end: 12546 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 128 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 128 - expected_type: 128 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 129 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 129 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 127 - - 126 - arguments: [] - ty: 129 - span: - start: 5078 - end: 5097 - ty: 129 - span: - start: 5070 - end: 5097 - ty: 128 - span: - start: 5051 - end: 5097 - ty: 128 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 + start: 3989 + end: 3992 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 119 + span: + start: 3996 + end: 4003 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 + start: 4004 + end: 4005 + ty: + inner: 11 span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 4007 + end: 4010 + - mut_span: ~ + name: + inner: 101 + span: + start: 4012 + end: 4013 + ty: + inner: 11 + span: + start: 4015 + end: 4018 + result: + inner: 11 + span: + start: 4023 + end: 4026 + accesses: + - file_id: 0 + span: + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4042 + end: 4045 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 135 + signature_index: 101 name: - inner: 99 + inner: 120 span: - start: 5136 - end: 5139 + start: 4049 + end: 4056 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 4057 + end: 4058 ty: - inner: 133 + inner: 10 span: - start: 5161 - end: 5168 + start: 4060 + end: 4063 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 4065 + end: 4066 ty: - inner: 134 + inner: 10 span: - start: 5177 - end: 5186 + start: 4068 + end: 4071 result: - inner: 133 + inner: 10 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 133 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 133 - expected_type: 133 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 134 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 134 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 132 - - 131 - arguments: [] - ty: 134 - span: - start: 5237 - end: 5256 - ty: 134 - span: - start: 5229 - end: 5256 - ty: 133 - span: - start: 5210 - end: 5256 - ty: 133 + start: 4076 + end: 4079 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 + attributes: + - Intrinsic + body: ~ + - id: 84 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 4095 + end: 4098 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 121 + span: + start: 4102 + end: 4109 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: + start: 4110 + end: 4111 + ty: inner: 13 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4113 + end: 4116 + - mut_span: ~ + name: + inner: 101 + span: + start: 4118 + end: 4119 + ty: + inner: 13 + span: + start: 4121 + end: 4124 + result: + inner: 13 + span: + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 + attributes: + - Intrinsic + body: ~ + - id: 85 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 140 + signature_index: 102 name: - inner: 100 + inner: 122 span: - start: 5295 - end: 5302 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4163 + end: 4164 ty: - inner: 138 + inner: 12 span: - start: 5324 - end: 5335 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4171 + end: 4172 ty: - inner: 139 + inner: 12 span: - start: 5344 - end: 5353 + start: 4174 + end: 4177 result: - inner: 138 + inner: 12 span: - start: 5358 - end: 5369 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 138 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 138 - expected_type: 138 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 139 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 139 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 137 - - 136 - arguments: [] - ty: 139 - span: - start: 5408 - end: 5427 - ty: 139 - span: - start: 5400 - end: 5427 - ty: 138 - span: - start: 5381 - end: 5427 - ty: 138 + start: 4182 + end: 4185 + accesses: + - file_id: 0 span: - start: 5370 - end: 5439 - - id: 87 + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 + start: 4201 + end: 4204 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 123 + span: + start: 4208 + end: 4218 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: - inner: 13 + start: 4219 + end: 4220 + ty: + inner: 11 span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4222 + end: 4225 + - mut_span: ~ + name: + inner: 101 + span: + start: 4227 + end: 4228 + ty: + inner: 11 + span: + start: 4230 + end: 4233 + result: + inner: 11 + span: + start: 4238 + end: 4241 + accesses: + - file_id: 0 + span: + start: 6924 + end: 6934 + - file_id: 0 + span: + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4257 + end: 4260 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 145 + signature_index: 98 name: - inner: 101 + inner: 124 span: - start: 5466 - end: 5473 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4275 + end: 4276 ty: - inner: 143 + inner: 13 span: - start: 5495 - end: 5506 + start: 4278 + end: 4281 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4283 + end: 4284 ty: - inner: 144 + inner: 13 span: - start: 5515 - end: 5524 + start: 4286 + end: 4289 result: - inner: 143 + inner: 13 span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 143 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 143 - expected_type: 143 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 144 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 144 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 142 - - 141 - arguments: [] - ty: 144 - span: - start: 5579 - end: 5598 - ty: 144 - span: - start: 5571 - end: 5598 - ty: 143 - span: - start: 5552 - end: 5598 - ty: 143 + start: 4294 + end: 4297 + accesses: + - file_id: 0 span: - start: 5541 - end: 5610 - - id: 106 - file_id: 1 - namespace: ~ + start: 9522 + end: 9532 + - file_id: 0 + span: + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 + file_id: 0 + namespace: 0 parent: ~ - pub_span: ~ + pub_span: + start: 4313 + end: 4316 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 97 name: - inner: 98 + inner: 125 span: - start: 15 - end: 18 + start: 4320 + end: 4329 params: - mut_span: ~ name: - inner: 117 + inner: 100 span: - start: 19 - end: 20 + start: 4330 + end: 4331 ty: inner: 11 span: - start: 22 - end: 25 + start: 4333 + end: 4336 - mut_span: ~ name: - inner: 118 + inner: 101 span: - start: 27 - end: 28 + start: 4338 + end: 4339 ty: inner: 11 span: - start: 30 - end: 33 + start: 4341 + end: 4344 result: inner: 11 span: - start: 38 - end: 41 + start: 4349 + end: 4352 accesses: - - file_id: 1 + - file_id: 0 span: - start: 62 - end: 65 - - file_id: 1 + start: 7032 + end: 7041 + - file_id: 0 span: - start: 67 - end: 70 - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 42 - end: 51 - locals: - - name: - inner: 117 - span: - start: 19 - end: 20 - ty: 11 - mut_span: ~ - accesses: - - span: - start: 44 - end: 45 - kind: Read - - name: - inner: 118 - span: - start: 27 - end: 28 - ty: 11 - mut_span: ~ - accesses: - - span: - start: 48 - end: 49 - kind: Read - inferred_type: 11 - expected_type: 11 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 46 - end: 47 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 11 - span: - start: 44 - end: 45 - right: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 11 - span: - start: 48 - end: 49 - ty: 11 - span: - start: 44 - end: 49 - ty: 11 + start: 8300 + end: 8309 + - file_id: 0 span: - start: 42 - end: 51 - - id: 68 + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 + attributes: + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4368 + end: 4371 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 26 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 79 + inner: 126 span: - start: 3404 - end: 3408 + start: 4375 + end: 4384 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4385 + end: 4386 ty: - inner: 20 + inner: 13 span: - start: 3409 - end: 3413 + start: 4388 + end: 4391 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4393 + end: 4394 ty: - inner: 22 + inner: 13 span: - start: 3422 - end: 3432 + start: 4396 + end: 4399 result: - inner: 25 + inner: 13 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 22 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 25 - expected_type: 25 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 22 - span: - start: 3484 - end: 3489 - ty: 25 - span: - start: 3466 - end: 3490 - ty: 25 + start: 4404 + end: 4407 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 9630 + end: 9639 + - file_id: 0 + span: + start: 10898 + end: 10907 + attributes: + - Intrinsic + body: ~ + - id: 90 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4423 + end: 4426 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 81 + inner: 127 span: - start: 3519 - end: 3523 + start: 4430 + end: 4440 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4441 + end: 4442 ty: - inner: 20 + inner: 11 span: - start: 3524 - end: 3528 + start: 4444 + end: 4447 + - mut_span: ~ + name: + inner: 101 + span: + start: 4449 + end: 4450 + ty: + inner: 11 + span: + start: 4452 + end: 4455 result: - inner: 22 + inner: 11 span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 20 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 22 - expected_type: 22 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 20 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 20 - span: - start: 3566 - end: 3570 - ty: 22 - span: - start: 3554 - end: 3571 - ty: 22 + start: 4460 + end: 4463 + accesses: + - file_id: 0 span: - start: 3544 - end: 3577 - - id: 72 + start: 7141 + end: 7151 + - file_id: 0 + span: + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 + attributes: + - Intrinsic + body: ~ + - id: 91 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3718 - end: 3721 - type_params: - - name: - inner: 13 - span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 93 + start: 4479 + end: 4482 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 84 - span: - start: 3725 - end: 3727 - params: [] - result: - inner: 92 + inner: 128 span: - start: 3736 - end: 3740 + start: 4486 + end: 4496 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4497 + end: 4498 + ty: + inner: 13 + span: + start: 4500 + end: 4503 + - mut_span: ~ + name: + inner: 101 + span: + start: 4505 + end: 4506 + ty: + inner: 13 + span: + start: 4508 + end: 4511 + result: + inner: 13 + span: + start: 4516 + end: 4519 accesses: - file_id: 0 span: - start: 4226 - end: 4228 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 158 - - 91 - arguments: [] - ty: 94 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 158 - - 91 - arguments: [] - ty: 94 - span: - start: 3788 - end: 3803 - ty: 92 - span: - start: 3751 - end: 3805 - ty: 92 + start: 9739 + end: 9749 + - file_id: 0 span: - start: 3741 - end: 3811 - - id: 73 + start: 11040 + end: 11050 + attributes: + - Intrinsic + body: ~ + - id: 92 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 95 + start: 4535 + end: 4538 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 85 + inner: 129 span: - start: 3838 - end: 3843 + start: 4542 + end: 4549 params: - mut_span: ~ name: - inner: 86 + inner: 100 + span: + start: 4550 + end: 4551 + ty: + inner: 11 + span: + start: 4553 + end: 4556 + - mut_span: ~ + name: + inner: 101 span: - start: 3847 - end: 3852 + start: 4558 + end: 4559 ty: - inner: 94 + inner: 11 span: - start: 3854 - end: 3863 + start: 4561 + end: 4564 result: - inner: 92 + inner: 11 span: - start: 3868 - end: 3872 + start: 4569 + end: 4572 accesses: - file_id: 0 span: - start: 4470 - end: 4475 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 94 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 92 - expected_type: 92 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 161 - - 91 - arguments: [] - ty: 94 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 94 - span: - start: 3938 - end: 3943 - ty: 94 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 161 - - 91 - arguments: [] - ty: 94 - span: - start: 3898 - end: 3913 - ty: 92 - span: - start: 3883 - end: 3945 - ty: 92 + start: 7245 + end: 7252 + - file_id: 0 span: - start: 3873 - end: 3951 - - id: 76 + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic + body: ~ + - id: 93 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4588 + end: 4591 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 108 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 88 + inner: 130 span: - start: 4007 - end: 4014 + start: 4595 + end: 4602 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4603 + end: 4604 ty: - inner: 98 + inner: 13 span: - start: 4021 - end: 4041 + start: 4606 + end: 4609 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4611 + end: 4612 ty: - inner: 106 + inner: 13 span: - start: 4051 - end: 4068 + start: 4614 + end: 4617 result: - inner: 107 + inner: 13 span: - start: 4073 - end: 4091 + start: 4622 + end: 4625 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 9843 + end: 9850 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 11177 + end: 11184 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 94 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 + parent: ~ + pub_span: + start: 4641 + end: 4644 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 131 + span: + start: 4648 + end: 4655 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 + start: 4656 + end: 4657 + ty: + inner: 11 + span: + start: 4659 + end: 4662 + - mut_span: ~ + name: + inner: 101 + span: + start: 4664 + end: 4665 + ty: + inner: 11 + span: + start: 4667 + end: 4670 + result: + inner: 11 + span: + start: 4675 + end: 4678 + accesses: + - file_id: 0 + span: + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 + attributes: + - Intrinsic + body: ~ + - id: 95 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4694 + end: 4697 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 signature_index: 101 name: - inner: 90 + inner: 132 span: - start: 4115 - end: 4120 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4709 + end: 4710 ty: - inner: 98 + inner: 10 span: - start: 4130 - end: 4150 + start: 4712 + end: 4715 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4717 + end: 4718 ty: - inner: 99 + inner: 10 span: - start: 4159 - end: 4160 + start: 4720 + end: 4723 result: - inner: 100 + inner: 10 span: - start: 4165 - end: 4182 - accesses: [] + start: 4728 + end: 4731 + accesses: + - file_id: 0 + span: + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 100 - expected_type: 100 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 97 - - 99 - arguments: [] - ty: 106 - span: - start: 4218 - end: 4235 - ty: 100 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4267 - end: 4270 - ty: 99 - memory: 97 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 99 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 100 - span: - start: 4290 - end: 4293 - ty: 100 - span: - start: 4183 - end: 4299 - - id: 78 + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 105 + parent: ~ + pub_span: + start: 4747 + end: 4750 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 92 + inner: 133 span: - start: 4322 - end: 4333 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4337 - end: 4341 + start: 4762 + end: 4763 ty: - inner: 98 + inner: 13 span: - start: 4343 - end: 4363 + start: 4765 + end: 4768 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4770 + end: 4771 ty: - inner: 102 + inner: 13 span: - start: 4370 - end: 4385 + start: 4773 + end: 4776 result: - inner: 104 + inner: 13 span: - start: 4390 - end: 4408 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 98 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 102 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 104 - expected_type: 104 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 97 - - 103 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 96 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 98 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 97 - - 103 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4481 - end: 4484 - ty: 106 - span: - start: 4462 - end: 4485 - ty: 167 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 102 - span: - start: 4517 - end: 4520 - ty: 104 - span: - start: 4419 - end: 4531 - ty: 104 + start: 4781 + end: 4784 + accesses: + - file_id: 0 span: - start: 4409 - end: 4542 - - id: 88 + start: 9944 + end: 9951 + attributes: + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 150 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 102 name: - inner: 18 + inner: 134 span: - start: 5671 - end: 5674 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4815 + end: 4816 + ty: + inner: 12 span: - start: 5675 - end: 5679 + start: 4818 + end: 4821 + - mut_span: ~ + name: + inner: 101 + span: + start: 4823 + end: 4824 ty: - inner: 148 + inner: 12 span: - start: 5675 - end: 5679 + start: 4826 + end: 4829 result: - inner: 149 + inner: 12 span: - start: 5684 - end: 5693 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 149 - expected_type: 149 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5714 - end: 5718 - ty: 149 - span: - start: 5704 - end: 5719 - ty: 149 + start: 4834 + end: 4837 + accesses: + - file_id: 0 span: - start: 5694 - end: 5725 - - id: 89 + start: 11303 + end: 11310 + attributes: + - Intrinsic + body: ~ + - id: 98 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5745 - end: 5748 + start: 4853 + end: 4856 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 152 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 95 name: - inner: 91 + inner: 135 span: - start: 5752 - end: 5755 + start: 4860 + end: 4870 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 5756 - end: 5760 + start: 4871 + end: 4876 ty: - inner: 148 + inner: 11 span: - start: 5756 - end: 5760 + start: 4878 + end: 4881 result: - inner: 151 + inner: 11 span: - start: 5765 - end: 5772 - accesses: [] + start: 4886 + end: 4889 + accesses: + - file_id: 0 + span: + start: 7442 + end: 7452 + - file_id: 0 + span: + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 148 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 151 - expected_type: 151 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 146 - - 147 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 148 - span: - start: 5793 - end: 5797 - ty: 151 - span: - start: 5783 - end: 5798 - ty: 151 + - Intrinsic + body: ~ + - id: 99 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4905 + end: 4908 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 136 + span: + start: 4912 + end: 4922 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 4923 + end: 4928 + ty: + inner: 13 + span: + start: 4930 + end: 4933 + result: + inner: 13 + span: + start: 4938 + end: 4941 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 10040 + end: 10050 + - file_id: 0 + span: + start: 11407 + end: 11417 + attributes: + - Intrinsic + body: ~ + - id: 100 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4957 + end: 4960 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 103 name: - inner: 104 + inner: 137 span: - start: 5887 - end: 5905 + start: 4964 + end: 4979 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 5906 - end: 5910 + start: 4980 + end: 4985 ty: - inner: 17 + inner: 11 span: - start: 5906 - end: 5910 + start: 4987 + end: 4990 result: - inner: 17 + inner: 14 span: - start: 5915 - end: 5919 + start: 4995 + end: 4998 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 - span: - start: 5920 - end: 6063 - - id: 93 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 153 + signature_index: 104 name: - inner: 106 + inner: 138 span: - start: 6090 - end: 6108 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6109 - end: 6113 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6109 - end: 6113 + start: 5044 + end: 5047 result: - inner: 17 + inner: 14 span: - start: 6118 - end: 6122 + start: 5052 + end: 5055 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 - span: - start: 6123 - end: 6266 - - id: 94 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 105 name: - inner: 108 + inner: 139 span: - start: 6293 - end: 6301 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6302 - end: 6306 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6302 - end: 6306 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6311 - end: 6315 + start: 5109 + end: 5112 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 - span: - start: 6316 - end: 6353 - - id: 95 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 106 name: - inner: 107 + inner: 140 span: - start: 6380 - end: 6398 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 6399 - end: 6403 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 6408 - end: 6412 - accesses: - - file_id: 0 - span: - start: 6141 - end: 6159 + start: 5166 + end: 5169 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 - span: - start: 6413 - end: 6455 - - id: 96 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 107 name: - inner: 105 + inner: 141 span: - start: 6482 - end: 6500 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 6501 - end: 6505 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 6510 - end: 6514 - accesses: - - file_id: 0 - span: - start: 5938 - end: 5956 + start: 5223 + end: 5226 + accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 - span: - start: 6515 - end: 6557 - - id: 97 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 108 name: - inner: 109 + inner: 142 span: - start: 6584 - end: 6603 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 6604 - end: 6608 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 6613 - end: 6617 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 109 name: - inner: 110 + inner: 143 span: - start: 6720 - end: 6734 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 6735 - end: 6739 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 6744 - end: 6748 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 110 name: - inner: 111 + inner: 144 span: - start: 6818 - end: 6839 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 6840 - end: 6844 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 6849 - end: 6853 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 108 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5413 + end: 5416 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 111 name: - inner: 112 + inner: 145 span: - start: 7011 - end: 7030 + start: 5420 + end: 5433 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5434 + end: 5439 ty: - inner: 17 + inner: 14 span: - start: 7031 - end: 7035 + start: 5441 + end: 5444 result: - inner: 16 + inner: 11 span: - start: 7040 - end: 7044 + start: 5449 + end: 5452 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 109 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5468 + end: 5471 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 112 name: - inner: 113 + inner: 146 span: - start: 7213 - end: 7229 + start: 5475 + end: 5488 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5489 + end: 5494 ty: - inner: 17 + inner: 14 span: - start: 7230 - end: 7234 + start: 5496 + end: 5499 result: - inner: 16 + inner: 10 span: - start: 7239 - end: 7243 + start: 5504 + end: 5507 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 110 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5523 + end: 5526 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 113 name: - inner: 114 + inner: 147 span: - start: 7326 - end: 7343 + start: 5530 + end: 5543 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5544 + end: 5549 ty: - inner: 17 + inner: 15 span: - start: 7344 - end: 7348 + start: 5551 + end: 5554 result: - inner: 16 + inner: 11 span: - start: 7353 - end: 7357 + start: 5559 + end: 5562 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 111 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5578 + end: 5581 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 114 name: - inner: 115 + inner: 148 span: - start: 7515 - end: 7535 + start: 5585 + end: 5598 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5599 + end: 5604 ty: - inner: 17 + inner: 15 span: - start: 7536 - end: 7540 + start: 5606 + end: 5609 result: - inner: 16 + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 + name: + inner: 149 + span: + start: 5640 + end: 5653 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5654 + end: 5659 + ty: + inner: 14 + span: + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 113 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 + name: + inner: 150 + span: + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 + name: + inner: 151 + span: + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5764 + end: 5769 + ty: + inner: 15 + span: + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 + name: + inner: 152 + span: + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5819 + end: 5824 + ty: + inner: 15 + span: + start: 5826 + end: 5829 + result: + inner: 12 + span: + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 153 + span: + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 + span: + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 154 + span: + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 + span: + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 155 + name: + inner: 178 + span: + start: 21343 + end: 21347 + params: [] + result: + inner: 154 span: - start: 7545 - end: 7549 + start: 21369 + end: 21376 accesses: [] attributes: - Inline @@ -7301,51 +5398,11 @@ functions: label: ~ parent: ~ span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 - kind: Read - inferred_type: 16 - expected_type: 16 + start: 21377 + end: 21399 + locals: [] + inferred_type: 154 + expected_type: 154 block: kind: Block: @@ -7353,359 +5410,69 @@ functions: expressions: [] result: kind: - Binary: - operator: - inner: BitOr - span: - start: 7687 - end: 7688 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 - span: - start: 7560 - end: 7674 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 - span: - start: 7690 - end: 7716 - ty: 16 + Int: + value: 0 + ty: 154 span: - start: 7560 - end: 7717 - ty: 16 + start: 21387 + end: 21388 + ty: 154 span: - start: 7550 - end: 7723 - - id: 104 + start: 21377 + end: 21399 + - id: 376 file_id: 0 - namespace: 0 - parent: - GenericImpl: 4 + namespace: 1 + parent: ~ pub_span: - start: 7743 - end: 7746 - type_params: [] - type_param_parent: - ImplBlock: 4 + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 159 name: - inner: 116 + inner: 179 span: - start: 7750 - end: 7766 - params: - - mut_span: ~ - name: - inner: 80 - span: - start: 7767 - end: 7771 - ty: - inner: 17 - span: - start: 7767 - end: 7771 + start: 21426 + end: 21434 + params: [] result: - inner: 16 + inner: 158 span: - start: 7776 - end: 7780 + start: 21456 + end: 21463 accesses: [] attributes: - Inline @@ -7717,25 +5484,122 @@ functions: label: ~ parent: ~ span: - start: 7781 - end: 7823 - locals: - - name: - inner: 80 - span: - start: 7767 - end: 7771 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7791 - end: 7795 - kind: Read - - span: - start: 7806 - end: 7810 - kind: Read + start: 21464 + end: 21486 + locals: [] + inferred_type: 158 + expected_type: 158 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 158 + span: + start: 21474 + end: 21475 + ty: 158 + span: + start: 21464 + end: 21486 + - id: 377 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 163 + name: + inner: 180 + span: + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: + inner: 162 + span: + start: 21542 + end: 21549 + result: + inner: 16 + span: + start: 21554 + end: 21558 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21559 + end: 21596 + locals: + - name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: 162 + mut_span: ~ + accesses: + - span: + start: 21569 + end: 21572 + kind: Read inferred_type: 16 expected_type: 16 block: @@ -7747,1155 +5611,24583 @@ functions: kind: Binary: operator: - inner: And + inner: Eq + span: + start: 21586 + end: 21588 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 257 + span: + start: 21569 + end: 21572 + right: + kind: + Int: + value: 0 + ty: 257 + span: + start: 21589 + end: 21590 + ty: 16 + span: + start: 21569 + end: 21590 + ty: 16 + span: + start: 21559 + end: 21596 + - id: 378 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 168 + name: + inner: 181 + span: + start: 21623 + end: 21631 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: + inner: 166 + span: + start: 21653 + end: 21660 + result: + inner: 167 + span: + start: 21665 + end: 21672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21673 + end: 21697 + locals: + - name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: 166 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 167 + expected_type: 167 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 167 + span: + start: 21683 + end: 21686 + ty: 167 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 173 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 171 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 172 + span: + start: 21765 + end: 21774 + result: + inner: 171 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 171 + mut_span: ~ + accesses: + - span: + start: 21798 + end: 21801 + kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 172 + mut_span: ~ + accesses: + - span: + start: 21817 + end: 21822 + kind: Read + inferred_type: 171 + expected_type: 171 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add span: - start: 7803 - end: 7805 + start: 21815 + end: 21816 left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 172 + span: + start: 21798 + end: 21801 + right: kind: Binary: operator: - inner: GreaterEq + inner: Mul span: - start: 7796 - end: 7798 + start: 21823 + end: 21824 left: kind: Local: scope_index: 0 - local_index: 0 - ty: 17 + local_index: 1 + ty: 172 span: - start: 7791 - end: 7795 + start: 21817 + end: 21822 right: kind: - Char: - value: "!" - ty: 17 + GenericCall: + id: 43 + type_args: + - 170 + - 169 + arguments: [] + ty: 172 span: - start: 7799 - end: 7802 - ty: 16 + start: 21825 + end: 21844 + ty: 172 + span: + start: 21817 + end: 21844 + ty: 171 + span: + start: 21798 + end: 21844 + ty: 171 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 178 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 176 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 177 + span: + start: 21924 + end: 21933 + result: + inner: 176 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 176 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 176 + expected_type: 176 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 177 span: - start: 7791 - end: 7802 + start: 21957 + end: 21960 right: kind: Binary: operator: - inner: LessEq + inner: Mul span: - start: 7811 - end: 7813 + start: 21982 + end: 21983 left: kind: Local: scope_index: 0 - local_index: 0 - ty: 17 + local_index: 1 + ty: 177 span: - start: 7806 - end: 7810 + start: 21976 + end: 21981 right: kind: - Char: - value: "~" - ty: 17 + GenericCall: + id: 43 + type_args: + - 175 + - 174 + arguments: [] + ty: 177 span: - start: 7814 - end: 7817 - ty: 16 + start: 21984 + end: 22003 + ty: 177 span: - start: 7806 - end: 7817 - ty: 16 + start: 21976 + end: 22003 + ty: 176 span: - start: 7791 - end: 7817 - ty: 16 + start: 21957 + end: 22003 + ty: 176 span: - start: 7781 - end: 7823 -globals: [] -memories: [] -namespaces: - - name: 0 + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: - trait_index: 0 - assoc_name: 10 - ? - Type - - 26 - : TypeSet: - typeset_index: 1 - ? - Type - - 66 - : TypeSet: - typeset_index: 0 - ? - Type - - 70 - : Trait: - trait_index: 0 - ? - Type - - 71 - : Trait: - trait_index: 1 - ? - Type - - 72 - : TraitAssocType: - trait_index: 1 - assoc_name: 72 - ? - Type - - 82 - : Struct: - struct_index: 0 - ? - Type - - 87 - : Trait: - trait_index: 3 - ? - Type - - 91 - : Module: - namespace_idx: 1 - ? - Value - - 1 - : Const: - const_index: 0 - ? - Value - - 4 - : Function: - func_index: 0 - ? - Value - - 11 - : Function: - func_index: 1 - ? - Value - - 12 - : Function: - func_index: 2 - ? - Value - - 15 - : Function: - func_index: 3 - ? - Value - - 16 - : Function: - func_index: 4 - ? - Value - - 19 - : Function: - func_index: 5 - ? - Value - - 20 - : Function: - func_index: 6 - ? - Value - - 21 - : Function: - func_index: 7 - ? - Value - - 25 - : Function: - func_index: 8 - ? - Value - - 30 - : Function: - func_index: 9 - ? - Value - - 34 - : Function: - func_index: 10 - ? - Value - - 36 - : Function: - func_index: 11 - ? - Value - - 37 - : Function: - func_index: 12 - ? - Value - - 39 - : Function: - func_index: 13 - ? - Value - - 41 - : Function: - func_index: 14 - ? - Value - - 42 - : Function: - func_index: 15 - ? - Value - - 43 - : Function: - func_index: 16 - ? - Value - - 44 - : Function: - func_index: 17 - ? - Value - - 45 - : Function: - func_index: 18 - ? - Value - - 46 - : Function: - func_index: 19 - ? - Value - - 47 - : Function: - func_index: 20 - ? - Value - - 48 - : Function: - func_index: 21 - ? - Value - - 49 - : Function: - func_index: 22 - ? - Value - - 50 - : Function: - func_index: 23 - ? - Value - - 51 - : Function: - func_index: 24 - ? - Value - - 52 - : Function: - func_index: 25 - ? - Value - - 53 - : Function: - func_index: 26 - ? - Value - - 54 - : Function: - func_index: 27 - ? - Value - - 55 - : Function: - func_index: 28 - ? - Value - - 56 - : Function: - func_index: 29 - ? - Value - - 57 - : Function: - func_index: 30 - ? - Value - - 58 - : Function: - func_index: 31 - ? - Value - - 59 - : Function: - func_index: 32 - ? - Value - - 60 - : Function: - func_index: 33 - ? - Value - - 61 - : Function: - func_index: 34 - ? - Value - - 62 - : Function: - func_index: 35 - ? - Value - - 63 - : Function: - func_index: 36 - ? - Value - - 64 - : Function: - func_index: 37 - ? - Value - - 102 - : Const: - const_index: 1 - wildcard_imports: [] - accesses: - - file_id: 1 - span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ - name: - inner: 91 - span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: [] -enums: [] -exports: - 98: - Function: - internal_name: - inner: 98 - span: - start: 62 - end: 65 - external_name: ~ - id: 106 - 121: - Function: - internal_name: - inner: 98 - span: - start: 67 - end: 70 - external_name: - inner: 121 - span: - start: 74 - end: 80 - id: 106 -structs: - - id: 71 - file_id: 0 - namespace: 0 pub_span: - start: 3581 - end: 3584 - name: - inner: 82 - span: - start: 3592 - end: 3598 + start: 22035 + end: 22038 type_params: - name: - inner: 5 + inner: 57 span: - start: 3599 - end: 3602 + start: 22050 + end: 22053 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 3604 - end: 3610 + start: 22055 + end: 22061 typeset: ~ accesses: - file_id: 0 span: - start: 3628 - end: 3631 + start: 22071 + end: 22074 - file_id: 0 span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 - span: - start: 3622 - end: 3626 - ty: - inner: 90 - span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 + start: 22087 + end: 22090 + - file_id: 0 span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 span: - start: 3915 - end: 3919 + start: 22160 + end: 22163 - name: - inner: 83 - span: - start: 3647 - end: 3652 - ty: - inner: 90 + inner: 65 span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 + - file_id: 0 span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 - accesses: - - file_id: 0 - span: - start: 3686 - end: 3692 - - file_id: 0 - span: - start: 4051 - end: 4057 - - file_id: 0 - span: - start: 4218 - end: 4224 - - file_id: 0 - span: - start: 4462 - end: 4468 -traits: - - id: 45 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 70 - span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 - span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] + start: 22077 + end: 22078 + - file_id: 0 span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 71 - span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 - span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] + start: 22107 + end: 22108 + - file_id: 0 span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 - file_id: 0 - namespace: 0 - pub_span: - start: 3259 - end: 3262 + start: 22157 + end: 22158 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 183 name: - inner: 6 + inner: 182 span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 - span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 + start: 22042 + end: 22049 + params: + - mut_span: ~ + name: + inner: 176 span: - start: 3371 - end: 3375 - - file_id: 0 + start: 22066 + end: 22069 + ty: + inner: 181 span: - start: 3422 - end: 3426 - - file_id: 0 + start: 22071 + end: 22078 + - mut_span: ~ + name: + inner: 171 span: - start: 3437 - end: 3441 - - file_id: 0 + start: 22080 + end: 22085 + ty: + inner: 182 span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 - file_id: 0 - namespace: 0 - pub_span: - start: 3955 - end: 3958 - name: - inner: 87 + start: 22087 + end: 22096 + result: + inner: 181 span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 - span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 181 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 181 + expected_type: 181 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 182 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 182 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 180 + - 179 + arguments: [] + ty: 182 + span: + start: 22147 + end: 22166 + ty: 182 + span: + start: 22139 + end: 22166 + ty: 181 + span: + start: 22120 + end: 22166 + ty: 181 + span: + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 span: - start: 4146 - end: 4150 - - file_id: 0 + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 span: - start: 4165 - end: 4169 - - file_id: 0 + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 188 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 span: - start: 4343 - end: 4347 - - file_id: 0 + start: 22229 + end: 22232 + ty: + inner: 186 span: - start: 4359 - end: 4363 - - file_id: 0 + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 span: - start: 4370 - end: 4374 - - file_id: 0 + start: 22243 + end: 22248 + ty: + inner: 187 span: - start: 4390 - end: 4394 - - file_id: 0 + start: 22250 + end: 22259 + result: + inner: 186 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 186 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 186 + expected_type: 186 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 187 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 187 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 185 + - 184 + arguments: [] + ty: 187 + span: + start: 22310 + end: 22329 + ty: 187 + span: + start: 22302 + end: 22329 + ty: 186 + span: + start: 22283 + end: 22329 + ty: 186 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 span: - start: 4037 - end: 4041 - - file_id: 0 + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 191 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 span: - start: 4058 - end: 4062 - - file_id: 0 + start: 22390 + end: 22394 + ty: + inner: 190 span: - start: 4073 - end: 4077 - - file_id: 0 + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 span: - start: 4240 - end: 4244 - - file_id: 0 + start: 22407 + end: 22412 + ty: + inner: 190 span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 + start: 22414 + end: 22423 + result: + inner: 190 span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 - file_id: 0 - - id: 53 - trait_index: 0 - type_params: [] - target: - inner: 10 - span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 - span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 - file_id: 0 - - id: 57 - trait_index: 1 - type_params: [] - target: - inner: 7 - span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 - span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 - file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 - span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 - type_params: [] - target: - inner: 13 - span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: - start: 0 - end: 3 - name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 - span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 - span: - start: 27 - end: 32 - const_value: - Int: 65536 + start: 22428 + end: 22437 accesses: [] - attributes: [] - - id: 91 - file_id: 0 - namespace: 0 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 190 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 190 + expected_type: 190 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 190 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 190 + span: + start: 22469 + end: 22470 + ty: 190 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22503 + end: 22507 + ty: 190 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 190 + span: + start: 22512 + end: 22516 + ty: 190 + span: + start: 22511 + end: 22516 + ty: 190 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 190 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 190 + span: + start: 22567 + end: 22573 + ty: 190 + span: + start: 22438 + end: 22579 + - id: 402 + file_id: 1 + namespace: ~ parent: ~ pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 97 name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 + inner: 18 span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 + start: 15 + end: 18 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 19 + end: 20 + ty: + inner: 11 + span: + start: 22 + end: 25 + - mut_span: ~ + name: + inner: 101 + span: + start: 27 + end: 28 + ty: + inner: 11 + span: + start: 30 + end: 33 + result: + inner: 11 span: - start: 5836 - end: 5847 - const_value: - Int: 32 + start: 38 + end: 41 accesses: + - file_id: 1 + span: + start: 62 + end: 65 + - file_id: 1 + span: + start: 67 + end: 70 + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 42 + end: 51 + locals: + - name: + inner: 100 + span: + start: 19 + end: 20 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 44 + end: 45 + kind: Read + - name: + inner: 101 + span: + start: 27 + end: 28 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 48 + end: 49 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 44 + end: 45 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 48 + end: 49 + id: 124 + ty: 11 + span: + start: 44 + end: 49 + ty: 11 + span: + start: 42 + end: 51 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 20 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 19 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 19 + span: + start: 425 + end: 429 + result: + inner: 19 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 22 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 21 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 21 + span: + start: 502 + end: 506 + result: + inner: 21 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 24 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 23 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 23 + span: + start: 579 + end: 583 + result: + inner: 23 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 26 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 25 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 25 + span: + start: 656 + end: 660 + result: + inner: 25 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 28 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 27 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 27 + span: + start: 733 + end: 737 + result: + inner: 27 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 30 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 29 + span: + start: 799 + end: 803 + result: + inner: 29 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 32 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 31 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 31 + span: + start: 885 + end: 889 + result: + inner: 31 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 34 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 33 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 33 + span: + start: 968 + end: 972 + result: + inner: 33 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 36 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 35 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 35 + span: + start: 1054 + end: 1058 + result: + inner: 35 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 38 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 37 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 37 + span: + start: 1131 + end: 1135 + result: + inner: 37 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 40 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 39 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 39 + span: + start: 1208 + end: 1212 + result: + inner: 39 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 42 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 41 + span: + start: 1283 + end: 1287 + result: + inner: 41 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 50 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 44 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 46 + span: + start: 20204 + end: 20214 + result: + inner: 49 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 46 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 49 + expected_type: 49 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 46 + span: + start: 20266 + end: 20271 + ty: 49 + span: + start: 20248 + end: 20272 + ty: 49 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 44 + span: + start: 20306 + end: 20310 + result: + inner: 46 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 44 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 46 + expected_type: 46 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 44 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 44 + span: + start: 20348 + end: 20352 + ty: 46 + span: + start: 20336 + end: 20353 + ty: 46 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 201 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 202 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: + - file_id: 1 + span: + start: 46 + end: 47 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 206 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 207 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 208 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 213 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 215 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 216 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 217 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 218 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 219 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 220 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 221 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 222 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 223 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 224 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 225 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 226 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 227 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 228 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 229 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 218 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 219 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 220 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 230 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 231 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 224 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 225 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 226 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 227 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 232 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 229 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 233 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 234 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 235 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 236 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 93 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 237 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 238 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 239 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 240 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 241 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 242 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 206 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 207 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 208 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 213 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 215 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 216 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 217 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 206 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 207 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 208 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 213 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 203 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 204 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 205 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 215 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 216 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 212 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 217 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 214 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 209 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 210 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 211 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 136 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 135 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 245 + - 134 + arguments: [] + ty: 137 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 245 + - 134 + arguments: [] + ty: 137 + span: + start: 20570 + end: 20585 + ty: 135 + span: + start: 20533 + end: 20587 + ty: 135 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 138 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 137 + span: + start: 20636 + end: 20645 + result: + inner: 135 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 137 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 135 + expected_type: 135 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 248 + - 134 + arguments: [] + ty: 137 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 137 + span: + start: 20720 + end: 20725 + ty: 137 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 248 + - 134 + arguments: [] + ty: 137 + span: + start: 20680 + end: 20695 + ty: 135 + span: + start: 20665 + end: 20727 + ty: 135 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 151 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 141 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 149 + span: + start: 20829 + end: 20846 + result: + inner: 150 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 144 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 141 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 142 + span: + start: 20929 + end: 20930 + result: + inner: 143 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 143 + expected_type: 143 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 140 + - 142 + arguments: [] + ty: 149 + span: + start: 20984 + end: 21001 + ty: 143 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21029 + end: 21032 + ty: 142 + memory: 140 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 142 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 143 + span: + start: 21052 + end: 21055 + ty: 143 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 148 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 141 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 145 + span: + start: 21128 + end: 21143 + result: + inner: 147 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 141 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 145 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 147 + expected_type: 147 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 140 + - 146 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 141 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 140 + - 146 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21236 + end: 21239 + ty: 149 + span: + start: 21217 + end: 21240 + ty: 254 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 145 + span: + start: 21272 + end: 21275 + ty: 147 + span: + start: 21174 + end: 21286 + ty: 147 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 196 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 194 + span: + start: 22645 + end: 22649 + result: + inner: 195 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 195 + expected_type: 195 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22684 + end: 22688 + ty: 195 + span: + start: 22674 + end: 22689 + ty: 195 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 198 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 194 + span: + start: 22726 + end: 22730 + result: + inner: 197 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 194 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 197 + expected_type: 197 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 192 + - 193 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 194 + span: + start: 22763 + end: 22767 + ty: 197 + span: + start: 22753 + end: 22768 + ty: 197 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 199 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 24773 + end: 24775 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24766 + end: 24768 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24761 + end: 24765 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24769 + end: 24772 + ty: 16 + span: + start: 24761 + end: 24772 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24781 + end: 24783 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24776 + end: 24780 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24784 + end: 24787 + ty: 16 + span: + start: 24776 + end: 24787 + ty: 16 + span: + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: + trait_index: 0 + ? - Type + - 23 + : Trait: + trait_index: 1 + ? - Type + - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 + : TypeSet: + typeset_index: 1 + ? - Type + - 158 + : TypeSet: + typeset_index: 0 + ? - Type + - 159 + : Trait: + trait_index: 12 + ? - Type + - 160 + : Trait: + trait_index: 13 + ? - Type + - 161 + : TraitAssocType: + trait_index: 13 + assoc_name: 161 + ? - Type + - 167 + : Struct: + struct_index: 0 + ? - Type + - 172 + : Trait: + trait_index: 15 + ? - Type + - 176 + : Module: + namespace_idx: 1 + ? - Value + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 + ? - Value + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 + : Function: + func_index: 26 + ? - Value + - 102 + : Function: + func_index: 27 + ? - Value + - 103 + : Function: + func_index: 28 + ? - Value + - 104 + : Function: + func_index: 29 + ? - Value + - 105 + : Function: + func_index: 30 + ? - Value + - 106 + : Function: + func_index: 31 + ? - Value + - 107 + : Function: + func_index: 32 + ? - Value + - 108 + : Function: + func_index: 33 + ? - Value + - 109 + : Function: + func_index: 34 + ? - Value + - 110 + : Function: + func_index: 35 + ? - Value + - 111 + : Function: + func_index: 36 + ? - Value + - 112 + : Function: + func_index: 37 + ? - Value + - 113 + : Function: + func_index: 38 + ? - Value + - 114 + : Function: + func_index: 39 + ? - Value + - 115 + : Function: + func_index: 40 + ? - Value + - 116 + : Function: + func_index: 41 + ? - Value + - 117 + : Function: + func_index: 42 + ? - Value + - 118 + : Function: + func_index: 43 + ? - Value + - 119 + : Function: + func_index: 44 + ? - Value + - 120 + : Function: + func_index: 45 + ? - Value + - 121 + : Function: + func_index: 46 + ? - Value + - 122 + : Function: + func_index: 47 + ? - Value + - 123 + : Function: + func_index: 48 + ? - Value + - 124 + : Function: + func_index: 49 + ? - Value + - 125 + : Function: + func_index: 50 + ? - Value + - 126 + : Function: + func_index: 51 + ? - Value + - 127 + : Function: + func_index: 52 + ? - Value + - 128 + : Function: + func_index: 53 + ? - Value + - 129 + : Function: + func_index: 54 + ? - Value + - 130 + : Function: + func_index: 55 + ? - Value + - 131 + : Function: + func_index: 56 + ? - Value + - 132 + : Function: + func_index: 57 + ? - Value + - 133 + : Function: + func_index: 58 + ? - Value + - 134 + : Function: + func_index: 59 + ? - Value + - 135 + : Function: + func_index: 60 + ? - Value + - 136 + : Function: + func_index: 61 + ? - Value + - 137 + : Function: + func_index: 62 + ? - Value + - 138 + : Function: + func_index: 63 + ? - Value + - 139 + : Function: + func_index: 64 + ? - Value + - 140 + : Function: + func_index: 65 + ? - Value + - 141 + : Function: + func_index: 66 + ? - Value + - 142 + : Function: + func_index: 67 + ? - Value + - 143 + : Function: + func_index: 68 + ? - Value + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 + : Const: + const_index: 1 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: [] +enums: [] +exports: + 18: + Function: + internal_name: + inner: 18 + span: + start: 62 + end: 65 + external_name: ~ + id: 402 + 204: + Function: + internal_name: + inner: 18 + span: + start: 67 + end: 70 + external_name: + inner: 204 + span: + start: 74 + end: 80 + id: 402 +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 133 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 133 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 45 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 203 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 + span: + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 + span: + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 + span: + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 + accesses: + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 + accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 + - file_id: 1 + span: + start: 22 + end: 25 + - file_id: 1 + span: + start: 30 + end: 33 + - file_id: 1 + span: + start: 38 + end: 41 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 + span: + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 + span: + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 + span: + start: 13511 + end: 13514 + - file_id: 0 + span: + start: 13612 + end: 13615 + - file_id: 0 + span: + start: 13737 + end: 13740 + - file_id: 0 + span: + start: 13749 + end: 13752 + - file_id: 0 + span: + start: 13875 + end: 13878 + - file_id: 0 + span: + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 + span: + start: 14280 + end: 14283 + - file_id: 0 + span: + start: 14292 + end: 14295 + - file_id: 0 + span: + start: 14402 + end: 14405 + - file_id: 0 + span: + start: 14518 + end: 14521 + - file_id: 0 + span: + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 + span: + start: 18219 + end: 18222 + - file_id: 0 + span: + start: 18231 + end: 18234 + - file_id: 0 + span: + start: 18359 + end: 18362 + - file_id: 0 + span: + start: 18371 + end: 18374 + - file_id: 0 + span: + start: 18502 + end: 18505 + - file_id: 0 + span: + start: 18514 + end: 18517 + - file_id: 0 + span: + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - id: 5 + file_id: 0 + namespace: 0 + pub_span: + start: 151 + end: 154 + name: + inner: 7 + span: + start: 160 + end: 163 + attributes: + - Intrinsic + type_params: [] + body: 10 + accesses: + - file_id: 0 + span: + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 + - file_id: 0 + span: + start: 3750 + end: 3753 + - file_id: 0 + span: + start: 3758 + end: 3761 + - file_id: 0 + span: + start: 4060 + end: 4063 + - file_id: 0 + span: + start: 4068 + end: 4071 + - file_id: 0 + span: + start: 4076 + end: 4079 + - file_id: 0 + span: + start: 4712 + end: 4715 + - file_id: 0 + span: + start: 4720 + end: 4723 + - file_id: 0 + span: + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 + span: + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 + file_id: 0 + namespace: 0 + pub_span: + start: 179 + end: 182 + name: + inner: 8 + span: + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 + accesses: + - file_id: 0 + span: + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 + - file_id: 0 + span: + start: 10297 + end: 10300 + - file_id: 0 + span: + start: 10309 + end: 10312 + - file_id: 0 + span: + start: 10431 + end: 10434 + - file_id: 0 + span: + start: 10443 + end: 10446 + - file_id: 0 + span: + start: 10776 + end: 10779 + - file_id: 0 + span: + start: 10788 + end: 10791 + - file_id: 0 + span: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 - file_id: 0 span: - start: 5989 - end: 6004 + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 21 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 120 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__struct_valid_init.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__struct_valid_init.snap index a0fed08..a3d8b36 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__struct_valid_init.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__struct_valid_init.snap @@ -29,217 +29,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 20 + - 20 + - 20 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 22 + - 22 + - 22 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 24 + - 24 + - 24 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 26 + - 26 + - 26 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 28 + - 28 + - 28 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 30 + - 30 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 32 + - 32 + - 32 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 34 + - 34 + - 34 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 36 + - 36 + - 36 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 38 + - 38 + - 38 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 40 + - 40 + - 40 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 42 + - 42 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 21 - mutable: false + memory: 45 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 21 + trait_index: 14 + assoc_name: 61 + base: 45 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 23 + trait_index: 12 + assoc_name: 62 + base: 47 - Function: signature: items: - - 21 - - 23 - - 26 + - 45 + - 47 + - 50 params_count: 2 - Function: signature: items: - - 21 - - 23 + - 45 + - 47 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 29 + trait_index: 12 + assoc_name: 62 + base: 53 - Function: signature: items: - - 20 - - 29 - - 30 + - 44 + - 53 + - 54 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 32 + trait_index: 14 + assoc_name: 61 + base: 56 - Function: signature: items: - - 32 - - 33 + - 56 + - 57 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 36 - memory: 35 - mutable: false + of: 60 + memory: 59 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 35 + trait_index: 14 + assoc_name: 61 + base: 59 - Function: signature: items: - - 37 - - 38 + - 61 + - 62 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 41 - memory: 40 - mutable: false + of: 65 + memory: 64 + ownership: Shared - Pointer: - to: 41 - memory: 40 - mutable: false + to: 65 + memory: 64 + ownership: Shared - Function: signature: items: - - 42 - - 43 + - 66 + - 67 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 46 - memory: 45 - mutable: false + to: 70 + memory: 69 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 45 + trait_index: 14 + assoc_name: 61 + base: 69 - Slice: - of: 46 - memory: 45 - mutable: false + of: 70 + memory: 69 + ownership: Shared - Function: signature: items: - - 47 - - 48 - - 49 + - 71 + - 72 + - 73 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 51 + trait_index: 14 + assoc_name: 61 + base: 75 - Function: signature: items: - - 52 + - 76 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 54 + trait_index: 14 + assoc_name: 61 + base: 78 - Function: signature: items: - - 55 + - 79 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 57 - mutable: true + memory: 81 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 57 + trait_index: 14 + assoc_name: 61 + base: 81 - Function: signature: items: - - 58 + - 82 - 6 - - 59 + - 83 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 62 - mutable: true + memory: 86 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 64 - mutable: false + memory: 88 + ownership: Shared - Function: signature: items: - - 63 - - 65 - - 61 + - 87 + - 89 + - 85 - 2 params_count: 3 - Function: @@ -272,6 +402,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -380,14 +564,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 90 + trait_index: 14 + assoc_name: 61 + base: 133 - TypeParam: owner: ImplBlock: 2 @@ -395,248 +650,263 @@ types: - Struct: struct_index: 0 args: - - 92 + - 135 - Function: signature: items: - - 93 + - 136 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 92 + trait_index: 14 + assoc_name: 61 + base: 135 - Function: signature: items: - - 95 - - 93 + - 138 + - 136 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 97 + trait_index: 15 + assoc_name: 57 + base: 140 - Pointer: - to: 97 - memory: 98 - mutable: true + to: 140 + memory: 141 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 100 - memory: 98 - mutable: true + to: 143 + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 100 - - 101 + - 142 + - 143 + - 144 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 98 + trait_index: 14 + assoc_name: 61 + base: 141 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 104 - memory: 98 - mutable: true + of: 147 + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 103 - - 105 + - 142 + - 146 + - 148 params_count: 2 - Struct: struct_index: 0 args: - - 98 + - 141 - Pointer: to: 6 - memory: 98 - mutable: true + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 107 - - 108 + - 142 + - 150 + - 151 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 111 - memory: 110 - mutable: false + to: 154 + memory: 153 + ownership: Shared - Function: signature: items: - - 112 + - 155 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 115 - memory: 114 - mutable: true + to: 158 + memory: 157 + ownership: Exclusive - Function: signature: items: - - 116 + - 159 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 119 - memory: 118 - mutable: false + to: 162 + memory: 161 + ownership: Shared - Function: signature: items: - - 120 + - 163 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 123 - memory: 122 - mutable: false + to: 166 + memory: 165 + ownership: Shared - Pointer: - to: 123 - memory: 122 - mutable: true + to: 166 + memory: 165 + ownership: Exclusive - Function: signature: items: - - 124 - - 125 + - 167 + - 168 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 128 - memory: 127 - mutable: false + to: 171 + memory: 170 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 127 + trait_index: 14 + assoc_name: 61 + base: 170 - Function: signature: items: - - 129 - - 130 - - 129 + - 172 + - 173 + - 172 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 133 - memory: 132 - mutable: false + to: 176 + memory: 175 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 132 + trait_index: 14 + assoc_name: 61 + base: 175 - Function: signature: items: - - 134 - - 135 - - 134 + - 177 + - 178 + - 177 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 138 - memory: 137 - mutable: true + to: 181 + memory: 180 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 137 + trait_index: 14 + assoc_name: 61 + base: 180 - Function: signature: items: - - 139 - - 140 - - 139 + - 182 + - 183 + - 182 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 143 - memory: 142 - mutable: true + to: 186 + memory: 185 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 142 + trait_index: 14 + assoc_name: 61 + base: 185 - Function: signature: items: - - 144 - - 145 - - 144 + - 187 + - 188 + - 187 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 190 + - Function: + signature: + items: + - 191 + - 191 + - 191 params_count: 2 - TypeParam: owner: @@ -647,28 +917,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 148 - memory: 147 - mutable: false + of: 194 + memory: 193 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 147 + trait_index: 14 + assoc_name: 61 + base: 193 - Function: signature: items: - - 149 - - 150 + - 195 + - 196 params_count: 1 - Pointer: - to: 148 - memory: 147 - mutable: false + to: 194 + memory: 193 + ownership: Shared - Function: signature: items: - - 149 - - 152 + - 195 + - 198 params_count: 1 - Function: signature: @@ -688,6997 +958,4655 @@ types: - 19 params_count: 0 - FunctionItem: - id: 1 - type_args: - - 1 + id: 58 + type_args: [] - FunctionItem: - id: 2 - type_args: - - 1 + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 + type_args: + - 1 + - FunctionItem: + id: 39 + type_args: + - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 159 + - 247 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 159 + - 247 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 162 + - 250 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 162 + - 250 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 100 + - 143 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 104 - memory: 98 - mutable: false + to: 147 + memory: 141 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 104 + - 147 - Slice: - of: 104 - memory: 98 - mutable: false + of: 147 + memory: 141 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 118 + trait_index: 14 + assoc_name: 61 + base: 161 - FunctionItem: - id: 6 + id: 43 type_args: - - 128 - - 127 + - 171 + - 170 - FunctionItem: - id: 6 + id: 43 type_args: - - 133 - - 132 + - 176 + - 175 - FunctionItem: - id: 6 + id: 43 type_args: - - 138 - - 137 + - 181 + - 180 - FunctionItem: - id: 6 + id: 43 type_args: - - 143 - - 142 + - 186 + - 185 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 147 - mutable: false + memory: 193 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 diagnostics: [] functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 31 + signature_index: 55 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 20 + inner: 44 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 29 + inner: 53 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 30 + inner: 54 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 34 + signature_index: 58 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 32 + inner: 56 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 33 + inner: 57 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 39 + signature_index: 63 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 37 + inner: 61 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 38 + inner: 62 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 44 + signature_index: 68 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 42 + inner: 66 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 43 + inner: 67 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 50 + signature_index: 74 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 47 + inner: 71 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 48 + inner: 72 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 49 + inner: 73 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 53 + signature_index: 77 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 52 + inner: 76 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 56 + signature_index: 80 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 55 + inner: 79 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 60 + signature_index: 84 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 58 + inner: 82 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 59 + inner: 83 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 61 + - - 61 + - Equals: 85 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 61 + - - 61 + - Equals: 85 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 63 + inner: 87 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 65 + inner: 89 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 61 + inner: 85 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 97 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 95 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 span: - start: 1813 - end: 1816 + start: 3058 + end: 3059 + ty: + inner: 11 + span: + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3103 + end: 3104 + ty: + inner: 13 + span: + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 span: - start: 1863 - end: 1868 + start: 3111 + end: 3112 ty: - inner: 12 + inner: 13 span: - start: 1870 - end: 1873 + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 - result: - inner: 11 - span: - start: 1933 - end: 1936 - accesses: [] - attributes: - - Intrinsic - body: ~ - - id: 30 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: - start: 1952 - end: 1955 - type_params: [] - type_param_parent: ~ - inherited_type_param_count: 0 - signature_index: 81 - name: - inner: 56 - span: - start: 1959 - end: 1972 - params: + start: 3159 + end: 3162 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 1973 - end: 1978 + start: 3164 + end: 3165 ty: inner: 14 span: - start: 1980 - end: 1983 + start: 3167 + end: 3170 result: - inner: 10 + inner: 14 span: - start: 1988 - end: 1991 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 31 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 101 name: - inner: 57 + inner: 104 span: - start: 2014 - end: 2027 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3209 + end: 3210 + ty: + inner: 15 + span: + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 ty: inner: 15 span: - start: 2035 - end: 2038 + start: 3220 + end: 3223 result: - inner: 11 + inner: 15 span: - start: 2043 - end: 2046 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 32 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 98 name: - inner: 58 + inner: 105 span: - start: 2069 - end: 2082 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 + span: + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 span: - start: 2090 - end: 2093 + start: 3270 + end: 3271 + ty: + inner: 11 + span: + start: 3273 + end: 3276 result: - inner: 10 + inner: 11 span: - start: 2098 - end: 2101 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 33 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 99 name: - inner: 59 + inner: 106 span: - start: 2124 - end: 2137 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3315 + end: 3316 ty: - inner: 14 + inner: 13 span: - start: 2145 - end: 2148 + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 + span: + start: 3326 + end: 3329 result: inner: 13 span: - start: 2153 - end: 2156 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 34 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 100 name: - inner: 60 + inner: 107 span: - start: 2179 - end: 2192 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2200 - end: 2203 + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 result: - inner: 12 + inner: 14 span: - start: 2208 - end: 2211 - accesses: [] + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 35 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 101 name: - inner: 61 + inner: 108 span: - start: 2234 - end: 2247 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3421 + end: 3422 + ty: + inner: 15 + span: + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 span: - start: 2248 - end: 2253 + start: 3429 + end: 3430 ty: inner: 15 span: - start: 2255 - end: 2258 + start: 3432 + end: 3435 result: - inner: 13 + inner: 15 span: - start: 2263 - end: 2266 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 36 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 98 name: - inner: 62 + inner: 109 span: - start: 2289 - end: 2302 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 span: - start: 2310 - end: 2313 - result: - inner: 12 - span: - start: 2318 - end: 2321 - accesses: [] + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 + span: + start: 3482 + end: 3483 + ty: + inner: 11 + span: + start: 3485 + end: 3488 + result: + inner: 11 + span: + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 37 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 99 name: - inner: 63 + inner: 110 span: - start: 2344 - end: 2359 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3527 + end: 3528 ty: - inner: 14 + inner: 13 + span: + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 + span: + start: 3535 + end: 3536 + ty: + inner: 13 span: - start: 2367 - end: 2370 + start: 3538 + end: 3541 result: - inner: 15 + inner: 13 span: - start: 2375 - end: 2378 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 38 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 89 + signature_index: 100 name: - inner: 64 + inner: 111 span: - start: 2401 - end: 2415 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3580 + end: 3581 + ty: + inner: 14 + span: + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 span: - start: 2416 - end: 2421 + start: 3588 + end: 3589 ty: - inner: 15 + inner: 14 span: - start: 2423 - end: 2426 + start: 3591 + end: 3594 result: inner: 14 span: - start: 2431 - end: 2434 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 80 + - id: 75 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3618 + end: 3621 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 113 + signature_index: 101 name: - inner: 93 + inner: 112 span: - start: 4588 - end: 4592 - params: [] + start: 3625 + end: 3632 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 + span: + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 + span: + start: 3641 + end: 3642 + ty: + inner: 15 + span: + start: 3644 + end: 3647 result: - inner: 112 + inner: 15 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 112 - expected_type: 112 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 112 - span: - start: 4632 - end: 4633 - ty: 112 + start: 3652 + end: 3655 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 12438 + end: 12445 + attributes: + - Intrinsic + body: ~ + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 117 + signature_index: 98 name: - inner: 94 + inner: 113 span: - start: 4671 - end: 4679 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 116 + inner: 11 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 116 - expected_type: 116 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 116 - span: - start: 4723 - end: 4724 - ty: 116 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 121 + signature_index: 102 name: - inner: 95 + inner: 114 span: - start: 4762 - end: 4769 + start: 3731 + end: 3738 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4786 - end: 4789 + start: 3739 + end: 3740 ty: - inner: 120 + inner: 10 span: - start: 4791 - end: 4798 - result: - inner: 16 - span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 120 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 171 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 171 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 + result: + inner: 10 + span: + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 + start: 3777 + end: 3780 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 115 + span: + start: 3784 + end: 3791 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: + start: 3792 + end: 3793 + ty: inner: 13 span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 + span: + start: 3800 + end: 3801 + ty: + inner: 13 + span: + start: 3803 + end: 3806 + result: + inner: 13 + span: + start: 3811 + end: 3814 + accesses: + - file_id: 0 + span: + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 126 + signature_index: 103 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 124 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 125 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 124 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 125 - expected_type: 125 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 125 - span: - start: 4936 - end: 4939 - ty: 125 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 + start: 3883 + end: 3886 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 117 + span: + start: 3890 + end: 3897 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 + start: 3898 + end: 3899 + ty: + inner: 14 span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3901 + end: 3904 + - mut_span: ~ + name: + inner: 101 + span: + start: 3906 + end: 3907 + ty: + inner: 14 + span: + start: 3909 + end: 3912 + result: + inner: 14 + span: + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 + attributes: + - Intrinsic + body: ~ + - id: 81 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 131 + signature_index: 101 name: - inner: 98 + inner: 118 span: - start: 4977 - end: 4980 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3951 + end: 3952 ty: - inner: 129 + inner: 15 span: - start: 5002 - end: 5009 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3959 + end: 3960 ty: - inner: 130 + inner: 15 span: - start: 5018 - end: 5027 + start: 3962 + end: 3965 result: - inner: 129 + inner: 15 span: - start: 5032 - end: 5039 - accesses: [] + start: 3970 + end: 3973 + accesses: + - file_id: 0 + span: + start: 12539 + end: 12546 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 130 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 129 - expected_type: 129 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 130 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 130 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 128 - - 127 - arguments: [] - ty: 130 - span: - start: 5078 - end: 5097 - ty: 130 - span: - start: 5070 - end: 5097 - ty: 129 - span: - start: 5051 - end: 5097 - ty: 129 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 - span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 - span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 3989 + end: 3992 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 136 + signature_index: 98 name: - inner: 99 + inner: 119 span: - start: 5136 - end: 5139 + start: 3996 + end: 4003 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 4004 + end: 4005 ty: - inner: 134 + inner: 11 span: - start: 5161 - end: 5168 + start: 4007 + end: 4010 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 4012 + end: 4013 ty: - inner: 135 + inner: 11 span: - start: 5177 - end: 5186 + start: 4015 + end: 4018 result: - inner: 134 + inner: 11 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 135 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 134 - expected_type: 134 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 135 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 135 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 133 - - 132 - arguments: [] - ty: 135 - span: - start: 5237 - end: 5256 - ty: 135 - span: - start: 5229 - end: 5256 - ty: 134 - span: - start: 5210 - end: 5256 - ty: 134 + start: 4023 + end: 4026 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 4042 + end: 4045 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 120 + span: + start: 4049 + end: 4056 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: - inner: 13 + start: 4057 + end: 4058 + ty: + inner: 10 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4060 + end: 4063 + - mut_span: ~ + name: + inner: 101 + span: + start: 4065 + end: 4066 + ty: + inner: 10 + span: + start: 4068 + end: 4071 + result: + inner: 10 + span: + start: 4076 + end: 4079 + accesses: + - file_id: 0 + span: + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 + attributes: + - Intrinsic + body: ~ + - id: 84 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4095 + end: 4098 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 141 + signature_index: 99 name: - inner: 100 + inner: 121 span: - start: 5295 - end: 5302 + start: 4102 + end: 4109 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4110 + end: 4111 ty: - inner: 139 + inner: 13 span: - start: 5324 - end: 5335 + start: 4113 + end: 4116 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4118 + end: 4119 ty: - inner: 140 + inner: 13 span: - start: 5344 - end: 5353 + start: 4121 + end: 4124 result: - inner: 139 + inner: 13 span: - start: 5358 - end: 5369 - accesses: [] + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 140 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 139 - expected_type: 139 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 140 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 140 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 138 - - 137 - arguments: [] - ty: 140 - span: - start: 5408 - end: 5427 - ty: 140 - span: - start: 5400 - end: 5427 - ty: 139 - span: - start: 5381 - end: 5427 - ty: 139 - span: - start: 5370 - end: 5439 - - id: 87 + - Intrinsic + body: ~ + - id: 85 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 - span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: - inner: 13 - span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 146 + signature_index: 103 name: - inner: 101 + inner: 122 span: - start: 5466 - end: 5473 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4163 + end: 4164 ty: - inner: 144 + inner: 12 span: - start: 5495 - end: 5506 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4171 + end: 4172 ty: - inner: 145 + inner: 12 span: - start: 5515 - end: 5524 - result: - inner: 144 - span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 145 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 144 - expected_type: 144 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 145 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 145 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 143 - - 142 - arguments: [] - ty: 145 - span: - start: 5579 - end: 5598 - ty: 145 - span: - start: 5571 - end: 5598 - ty: 144 - span: - start: 5552 - end: 5598 - ty: 144 - span: - start: 5541 - end: 5610 - - id: 107 - file_id: 1 - namespace: ~ - parent: ~ - pub_span: ~ - type_params: [] - type_param_parent: ~ - inherited_type_param_count: 0 - signature_index: 156 - name: - inner: 120 - span: - start: 65 - end: 69 - params: [] + start: 4174 + end: 4177 result: - inner: 19 + inner: 12 span: - start: 75 - end: 80 + start: 4182 + end: 4185 accesses: - - file_id: 1 - span: - start: 121 - end: 125 - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 81 - end: 110 - locals: [] - inferred_type: 19 - expected_type: 19 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 1 - fields: - - kind: - Int: - value: 1 - ty: 11 - span: - start: 99 - end: 100 - - kind: - Int: - value: 2 - ty: 11 - span: - start: 105 - end: 106 - ty: 19 - span: - start: 87 - end: 108 - ty: 19 + - file_id: 0 span: - start: 81 - end: 110 - - id: 68 + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4201 + end: 4204 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 79 + inner: 123 span: - start: 3404 - end: 3408 + start: 4208 + end: 4218 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4219 + end: 4220 ty: - inner: 21 + inner: 11 span: - start: 3409 - end: 3413 + start: 4222 + end: 4225 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4227 + end: 4228 ty: - inner: 23 + inner: 11 span: - start: 3422 - end: 3432 + start: 4230 + end: 4233 result: - inner: 26 + inner: 11 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 21 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 23 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 26 - expected_type: 26 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 21 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 21 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 23 - span: - start: 3484 - end: 3489 - ty: 26 - span: - start: 3466 - end: 3490 - ty: 26 + start: 4238 + end: 4241 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 6924 + end: 6934 + - file_id: 0 + span: + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4257 + end: 4260 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 28 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 81 + inner: 124 span: - start: 3519 - end: 3523 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4275 + end: 4276 ty: - inner: 21 + inner: 13 span: - start: 3524 - end: 3528 - result: - inner: 23 - span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 21 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 23 - expected_type: 23 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 21 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 21 - span: - start: 3566 - end: 3570 - ty: 23 - span: - start: 3554 - end: 3571 - ty: 23 - span: - start: 3544 - end: 3577 - - id: 72 - file_id: 0 - namespace: 0 - parent: - GenericImpl: 2 - pub_span: - start: 3718 - end: 3721 - type_params: - - name: + start: 4278 + end: 4281 + - mut_span: ~ + name: + inner: 101 + span: + start: 4283 + end: 4284 + ty: inner: 13 span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 94 - name: - inner: 84 - span: - start: 3725 - end: 3727 - params: [] + start: 4286 + end: 4289 result: - inner: 93 + inner: 13 span: - start: 3736 - end: 3740 + start: 4294 + end: 4297 accesses: - file_id: 0 span: - start: 4226 - end: 4228 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 93 - expected_type: 93 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 159 - - 92 - arguments: [] - ty: 95 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 159 - - 92 - arguments: [] - ty: 95 - span: - start: 3788 - end: 3803 - ty: 93 - span: - start: 3751 - end: 3805 - ty: 93 + start: 9522 + end: 9532 + - file_id: 0 span: - start: 3741 - end: 3811 - - id: 73 + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 96 + start: 4313 + end: 4316 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 85 + inner: 125 span: - start: 3838 - end: 3843 + start: 4320 + end: 4329 params: - mut_span: ~ name: - inner: 86 + inner: 100 + span: + start: 4330 + end: 4331 + ty: + inner: 11 span: - start: 3847 - end: 3852 + start: 4333 + end: 4336 + - mut_span: ~ + name: + inner: 101 + span: + start: 4338 + end: 4339 ty: - inner: 95 + inner: 11 span: - start: 3854 - end: 3863 + start: 4341 + end: 4344 result: - inner: 93 + inner: 11 span: - start: 3868 - end: 3872 + start: 4349 + end: 4352 accesses: - file_id: 0 span: - start: 4470 - end: 4475 + start: 7032 + end: 7041 + - file_id: 0 + span: + start: 8300 + end: 8309 + - file_id: 0 + span: + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 95 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 93 - expected_type: 93 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 162 - - 92 - arguments: [] - ty: 95 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 95 - span: - start: 3938 - end: 3943 - ty: 95 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 162 - - 92 - arguments: [] - ty: 95 - span: - start: 3898 - end: 3913 - ty: 93 - span: - start: 3883 - end: 3945 - ty: 93 - span: - start: 3873 - end: 3951 - - id: 76 + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4368 + end: 4371 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 109 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 88 + inner: 126 span: - start: 4007 - end: 4014 + start: 4375 + end: 4384 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4385 + end: 4386 ty: - inner: 99 + inner: 13 span: - start: 4021 - end: 4041 + start: 4388 + end: 4391 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4393 + end: 4394 ty: - inner: 107 + inner: 13 span: - start: 4051 - end: 4068 + start: 4396 + end: 4399 result: - inner: 108 + inner: 13 span: - start: 4073 - end: 4091 + start: 4404 + end: 4407 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 9630 + end: 9639 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 10898 + end: 10907 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 90 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 102 + parent: ~ + pub_span: + start: 4423 + end: 4426 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 90 + inner: 127 span: - start: 4115 - end: 4120 + start: 4430 + end: 4440 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4441 + end: 4442 ty: - inner: 99 + inner: 11 span: - start: 4130 - end: 4150 + start: 4444 + end: 4447 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4449 + end: 4450 ty: - inner: 100 + inner: 11 span: - start: 4159 - end: 4160 + start: 4452 + end: 4455 result: - inner: 101 + inner: 11 span: - start: 4165 - end: 4182 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 101 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 101 - expected_type: 101 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 97 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 99 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 98 - - 100 - arguments: [] - ty: 107 - span: - start: 4218 - end: 4235 - ty: 101 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 101 - span: - start: 4267 - end: 4270 - ty: 100 - memory: 98 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 100 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 101 - span: - start: 4290 - end: 4293 - ty: 101 + start: 4460 + end: 4463 + accesses: + - file_id: 0 span: - start: 4183 - end: 4299 - - id: 78 + start: 7141 + end: 7151 + - file_id: 0 + span: + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 + attributes: + - Intrinsic + body: ~ + - id: 91 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 106 + parent: ~ + pub_span: + start: 4479 + end: 4482 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 92 + inner: 128 span: - start: 4322 - end: 4333 + start: 4486 + end: 4496 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4337 - end: 4341 + start: 4497 + end: 4498 ty: - inner: 99 + inner: 13 span: - start: 4343 - end: 4363 + start: 4500 + end: 4503 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4505 + end: 4506 ty: - inner: 103 + inner: 13 span: - start: 4370 - end: 4385 + start: 4508 + end: 4511 result: - inner: 105 + inner: 13 span: - start: 4390 - end: 4408 - accesses: [] + start: 4516 + end: 4519 + accesses: + - file_id: 0 + span: + start: 9739 + end: 9749 + - file_id: 0 + span: + start: 11040 + end: 11050 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 103 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 105 - expected_type: 105 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 98 - - 104 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 97 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 99 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 98 - - 104 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 103 - span: - start: 4481 - end: 4484 - ty: 107 - span: - start: 4462 - end: 4485 - ty: 168 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 103 - span: - start: 4517 - end: 4520 - ty: 105 - span: - start: 4419 - end: 4531 - ty: 105 - span: - start: 4409 - end: 4542 - - id: 88 + - Intrinsic + body: ~ + - id: 92 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4535 + end: 4538 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 151 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 18 + inner: 129 span: - start: 5671 - end: 5674 + start: 4542 + end: 4549 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4550 + end: 4551 + ty: + inner: 11 span: - start: 5675 - end: 5679 + start: 4553 + end: 4556 + - mut_span: ~ + name: + inner: 101 + span: + start: 4558 + end: 4559 ty: - inner: 149 + inner: 11 span: - start: 5675 - end: 5679 + start: 4561 + end: 4564 result: - inner: 150 + inner: 11 span: - start: 5684 - end: 5693 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 149 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 150 - expected_type: 150 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 147 - - 148 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 149 - span: - start: 5714 - end: 5718 - ty: 150 - span: - start: 5704 - end: 5719 - ty: 150 + start: 4569 + end: 4572 + accesses: + - file_id: 0 span: - start: 5694 - end: 5725 - - id: 89 + start: 7245 + end: 7252 + - file_id: 0 + span: + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic + body: ~ + - id: 93 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5745 - end: 5748 + start: 4588 + end: 4591 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 153 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 91 + inner: 130 span: - start: 5752 - end: 5755 + start: 4595 + end: 4602 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4603 + end: 4604 + ty: + inner: 13 + span: + start: 4606 + end: 4609 + - mut_span: ~ + name: + inner: 101 span: - start: 5756 - end: 5760 + start: 4611 + end: 4612 ty: - inner: 149 + inner: 13 span: - start: 5756 - end: 5760 + start: 4614 + end: 4617 result: - inner: 152 + inner: 13 span: - start: 5765 - end: 5772 - accesses: [] + start: 4622 + end: 4625 + accesses: + - file_id: 0 + span: + start: 9843 + end: 9850 + - file_id: 0 + span: + start: 11177 + end: 11184 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 149 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 152 - expected_type: 152 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 147 - - 148 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 149 - span: - start: 5793 - end: 5797 - ty: 152 - span: - start: 5783 - end: 5798 - ty: 152 + - Intrinsic + body: ~ + - id: 94 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4641 + end: 4644 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 131 + span: + start: 4648 + end: 4655 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4656 + end: 4657 + ty: + inner: 11 + span: + start: 4659 + end: 4662 + - mut_span: ~ + name: + inner: 101 + span: + start: 4664 + end: 4665 + ty: + inner: 11 + span: + start: 4667 + end: 4670 + result: + inner: 11 + span: + start: 4675 + end: 4678 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 + attributes: + - Intrinsic + body: ~ + - id: 95 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4694 + end: 4697 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 102 name: - inner: 104 + inner: 132 span: - start: 5887 - end: 5905 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 5906 - end: 5910 + start: 4709 + end: 4710 ty: - inner: 17 + inner: 10 + span: + start: 4712 + end: 4715 + - mut_span: ~ + name: + inner: 101 + span: + start: 4717 + end: 4718 + ty: + inner: 10 span: - start: 5906 - end: 5910 + start: 4720 + end: 4723 result: - inner: 17 + inner: 10 span: - start: 5915 - end: 5919 - accesses: [] + start: 4728 + end: 4731 + accesses: + - file_id: 0 + span: + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 - span: - start: 5920 - end: 6063 - - id: 93 + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 4747 + end: 4750 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 99 name: - inner: 106 + inner: 133 span: - start: 6090 - end: 6108 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6109 - end: 6113 + start: 4762 + end: 4763 ty: - inner: 17 + inner: 13 + span: + start: 4765 + end: 4768 + - mut_span: ~ + name: + inner: 101 span: - start: 6109 - end: 6113 + start: 4770 + end: 4771 + ty: + inner: 13 + span: + start: 4773 + end: 4776 result: - inner: 17 + inner: 13 span: - start: 6118 - end: 6122 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 + start: 4781 + end: 4784 + accesses: + - file_id: 0 span: - start: 6123 - end: 6266 - - id: 94 + start: 9944 + end: 9951 + attributes: + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 103 name: - inner: 108 + inner: 134 span: - start: 6293 - end: 6301 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6302 - end: 6306 + start: 4815 + end: 4816 ty: - inner: 17 + inner: 12 + span: + start: 4818 + end: 4821 + - mut_span: ~ + name: + inner: 101 span: - start: 6302 - end: 6306 + start: 4823 + end: 4824 + ty: + inner: 12 + span: + start: 4826 + end: 4829 result: - inner: 16 + inner: 12 span: - start: 6311 - end: 6315 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 + start: 4834 + end: 4837 + accesses: + - file_id: 0 span: - start: 6316 - end: 6353 - - id: 95 + start: 11303 + end: 11310 + attributes: + - Intrinsic + body: ~ + - id: 98 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 4853 + end: 4856 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 96 name: - inner: 107 + inner: 135 span: - start: 6380 - end: 6398 + start: 4860 + end: 4870 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 4871 + end: 4876 ty: - inner: 17 + inner: 11 span: - start: 6399 - end: 6403 + start: 4878 + end: 4881 result: - inner: 16 + inner: 11 span: - start: 6408 - end: 6412 + start: 4886 + end: 4889 accesses: - file_id: 0 span: - start: 6141 - end: 6159 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 + start: 7442 + end: 7452 + - file_id: 0 span: - start: 6413 - end: 6455 - - id: 96 + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 + attributes: + - Intrinsic + body: ~ + - id: 99 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 4905 + end: 4908 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 97 name: - inner: 105 + inner: 136 span: - start: 6482 - end: 6500 + start: 4912 + end: 4922 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 4923 + end: 4928 ty: - inner: 17 + inner: 13 span: - start: 6501 - end: 6505 + start: 4930 + end: 4933 result: - inner: 16 + inner: 13 span: - start: 6510 - end: 6514 + start: 4938 + end: 4941 accesses: - file_id: 0 span: - start: 5938 - end: 5956 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 + start: 10040 + end: 10050 + - file_id: 0 span: - start: 6515 - end: 6557 - - id: 97 - file_id: 0 - namespace: 0 - parent: - GenericImpl: 4 + start: 11407 + end: 11417 + attributes: + - Intrinsic + body: ~ + - id: 100 + file_id: 0 + namespace: 0 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 4957 + end: 4960 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 104 name: - inner: 109 + inner: 137 span: - start: 6584 - end: 6603 + start: 4964 + end: 4979 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 4980 + end: 4985 ty: - inner: 17 + inner: 11 span: - start: 6604 - end: 6608 + start: 4987 + end: 4990 result: - inner: 16 + inner: 14 span: - start: 6613 - end: 6617 + start: 4995 + end: 4998 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 105 name: - inner: 110 + inner: 138 span: - start: 6720 - end: 6734 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6735 - end: 6739 + start: 5044 + end: 5047 result: - inner: 16 + inner: 14 span: - start: 6744 - end: 6748 + start: 5052 + end: 5055 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 106 name: - inner: 111 + inner: 139 span: - start: 6818 - end: 6839 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6840 - end: 6844 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6849 - end: 6853 + start: 5109 + end: 5112 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 107 name: - inner: 112 + inner: 140 span: - start: 7011 - end: 7030 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 7031 - end: 7035 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 7040 - end: 7044 + start: 5166 + end: 5169 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 108 name: - inner: 113 + inner: 141 span: - start: 7213 - end: 7229 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 7230 - end: 7234 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 7239 - end: 7243 + start: 5223 + end: 5226 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 109 name: - inner: 114 + inner: 142 span: - start: 7326 - end: 7343 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 7344 - end: 7348 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 7353 - end: 7357 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 110 name: - inner: 115 + inner: 143 span: - start: 7515 - end: 7535 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 7536 - end: 7540 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 7545 - end: 7549 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7687 - end: 7688 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 - span: - start: 7560 - end: 7674 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 - span: - start: 7690 - end: 7716 - ty: 16 - span: - start: 7560 - end: 7717 - ty: 16 - span: - start: 7550 - end: 7723 - - id: 104 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7743 - end: 7746 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 111 name: - inner: 116 + inner: 144 span: - start: 7750 - end: 7766 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7767 - end: 7771 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 7767 - end: 7771 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 7776 - end: 7780 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ + - Intrinsic + body: ~ + - id: 108 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5413 + end: 5416 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 112 + name: + inner: 145 + span: + start: 5420 + end: 5433 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5434 + end: 5439 + ty: + inner: 14 + span: + start: 5441 + end: 5444 + result: + inner: 11 + span: + start: 5449 + end: 5452 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 109 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5468 + end: 5471 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 113 + name: + inner: 146 + span: + start: 5475 + end: 5488 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5489 + end: 5494 + ty: + inner: 14 + span: + start: 5496 + end: 5499 + result: + inner: 10 + span: + start: 5504 + end: 5507 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 110 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5523 + end: 5526 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 114 + name: + inner: 147 + span: + start: 5530 + end: 5543 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5544 + end: 5549 + ty: + inner: 15 + span: + start: 5551 + end: 5554 + result: + inner: 11 + span: + start: 5559 + end: 5562 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 111 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5578 + end: 5581 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 + name: + inner: 148 + span: + start: 5585 + end: 5598 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5599 + end: 5604 + ty: + inner: 15 + span: + start: 5606 + end: 5609 + result: + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 + name: + inner: 149 + span: + start: 5640 + end: 5653 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5654 + end: 5659 + ty: + inner: 14 + span: + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 113 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 + name: + inner: 150 + span: + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 + name: + inner: 151 + span: + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5764 + end: 5769 + ty: + inner: 15 + span: + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 152 + span: + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5819 + end: 5824 + ty: + inner: 15 + span: + start: 5826 + end: 5829 + result: + inner: 12 + span: + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 153 + span: + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 + span: + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 154 + span: + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 + span: + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 span: - start: 7781 - end: 7823 - locals: - - name: - inner: 80 - span: - start: 7767 - end: 7771 - ty: 17 + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 156 + name: + inner: 178 + span: + start: 21343 + end: 21347 + params: [] + result: + inner: 155 + span: + start: 21369 + end: 21376 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21377 + end: 21399 + locals: [] + inferred_type: 155 + expected_type: 155 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 155 + span: + start: 21387 + end: 21388 + ty: 155 + span: + start: 21377 + end: 21399 + - id: 376 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 160 + name: + inner: 179 + span: + start: 21426 + end: 21434 + params: [] + result: + inner: 159 + span: + start: 21456 + end: 21463 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21464 + end: 21486 + locals: [] + inferred_type: 159 + expected_type: 159 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 159 + span: + start: 21474 + end: 21475 + ty: 159 + span: + start: 21464 + end: 21486 + - id: 377 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 164 + name: + inner: 180 + span: + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: + inner: 163 + span: + start: 21542 + end: 21549 + result: + inner: 16 + span: + start: 21554 + end: 21558 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21559 + end: 21596 + locals: + - name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: 163 mut_span: ~ accesses: - span: - start: 7791 - end: 7795 - kind: Read - - span: - start: 7806 - end: 7810 + start: 21569 + end: 21572 kind: Read inferred_type: 16 expected_type: 16 @@ -7691,1204 +5619,24572 @@ functions: kind: Binary: operator: - inner: And + inner: Eq span: - start: 7803 - end: 7805 + start: 21586 + end: 21588 left: kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7796 - end: 7798 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7791 - end: 7795 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7799 - end: 7802 - ty: 16 + Local: + scope_index: 0 + local_index: 0 + ty: 259 span: - start: 7791 - end: 7802 + start: 21569 + end: 21572 right: kind: - Binary: - operator: - inner: LessEq - span: - start: 7811 - end: 7813 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7806 - end: 7810 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7814 - end: 7817 - ty: 16 + Int: + value: 0 + ty: 259 span: - start: 7806 - end: 7817 + start: 21589 + end: 21590 ty: 16 span: - start: 7791 - end: 7817 + start: 21569 + end: 21590 ty: 16 span: - start: 7781 - end: 7823 -globals: [] -memories: [] -namespaces: - - name: 0 - parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: - trait_index: 0 - assoc_name: 10 - ? - Type - - 26 - : TypeSet: - typeset_index: 1 - ? - Type - - 66 - : TypeSet: - typeset_index: 0 - ? - Type - - 70 - : Trait: - trait_index: 0 - ? - Type - - 71 - : Trait: - trait_index: 1 - ? - Type - - 72 - : TraitAssocType: - trait_index: 1 - assoc_name: 72 - ? - Type - - 82 - : Struct: - struct_index: 0 - ? - Type - - 87 - : Trait: - trait_index: 3 - ? - Type - - 91 - : Module: - namespace_idx: 1 - ? - Value - - 1 - : Const: - const_index: 0 - ? - Value - - 4 - : Function: - func_index: 0 - ? - Value - - 11 - : Function: - func_index: 1 - ? - Value - - 12 - : Function: - func_index: 2 - ? - Value - - 15 - : Function: - func_index: 3 - ? - Value - - 16 - : Function: - func_index: 4 - ? - Value - - 19 - : Function: - func_index: 5 - ? - Value - - 20 - : Function: - func_index: 6 - ? - Value - - 21 - : Function: - func_index: 7 - ? - Value - - 25 - : Function: - func_index: 8 - ? - Value - - 30 - : Function: - func_index: 9 - ? - Value - - 34 - : Function: - func_index: 10 - ? - Value - - 36 - : Function: - func_index: 11 - ? - Value - - 37 - : Function: - func_index: 12 - ? - Value - - 39 - : Function: - func_index: 13 - ? - Value - - 41 - : Function: - func_index: 14 - ? - Value - - 42 - : Function: - func_index: 15 - ? - Value - - 43 - : Function: - func_index: 16 - ? - Value - - 44 - : Function: - func_index: 17 - ? - Value - - 45 - : Function: - func_index: 18 - ? - Value - - 46 - : Function: - func_index: 19 - ? - Value - - 47 - : Function: - func_index: 20 - ? - Value - - 48 - : Function: - func_index: 21 - ? - Value - - 49 - : Function: - func_index: 22 - ? - Value - - 50 - : Function: - func_index: 23 - ? - Value - - 51 - : Function: - func_index: 24 - ? - Value - - 52 - : Function: - func_index: 25 - ? - Value - - 53 - : Function: - func_index: 26 - ? - Value - - 54 - : Function: - func_index: 27 - ? - Value - - 55 - : Function: - func_index: 28 - ? - Value - - 56 - : Function: - func_index: 29 - ? - Value - - 57 - : Function: - func_index: 30 - ? - Value - - 58 - : Function: - func_index: 31 - ? - Value - - 59 - : Function: - func_index: 32 - ? - Value - - 60 - : Function: - func_index: 33 - ? - Value - - 61 - : Function: - func_index: 34 - ? - Value - - 62 - : Function: - func_index: 35 - ? - Value - - 63 - : Function: - func_index: 36 - ? - Value - - 64 - : Function: - func_index: 37 - ? - Value - - 102 - : Const: - const_index: 1 - wildcard_imports: [] + start: 21559 + end: 21596 + - id: 378 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 169 + name: + inner: 181 + span: + start: 21623 + end: 21631 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: + inner: 167 + span: + start: 21653 + end: 21660 + result: + inner: 168 + span: + start: 21665 + end: 21672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21673 + end: 21697 + locals: + - name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: 167 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 168 + expected_type: 168 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 168 + span: + start: 21683 + end: 21686 + ty: 168 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 174 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 172 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 173 + span: + start: 21765 + end: 21774 + result: + inner: 172 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 172 + mut_span: ~ + accesses: + - span: + start: 21798 + end: 21801 + kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 173 + mut_span: ~ + accesses: + - span: + start: 21817 + end: 21822 + kind: Read + inferred_type: 172 + expected_type: 172 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 21815 + end: 21816 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 173 + span: + start: 21798 + end: 21801 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21823 + end: 21824 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 173 + span: + start: 21817 + end: 21822 + right: + kind: + GenericCall: + id: 43 + type_args: + - 171 + - 170 + arguments: [] + ty: 173 + span: + start: 21825 + end: 21844 + ty: 173 + span: + start: 21817 + end: 21844 + ty: 172 + span: + start: 21798 + end: 21844 + ty: 172 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 179 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 177 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 178 + span: + start: 21924 + end: 21933 + result: + inner: 177 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 178 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 177 + expected_type: 177 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 178 + span: + start: 21957 + end: 21960 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21982 + end: 21983 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 178 + span: + start: 21976 + end: 21981 + right: + kind: + GenericCall: + id: 43 + type_args: + - 176 + - 175 + arguments: [] + ty: 178 + span: + start: 21984 + end: 22003 + ty: 178 + span: + start: 21976 + end: 22003 + ty: 177 + span: + start: 21957 + end: 22003 + ty: 177 + span: + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22035 + end: 22038 + type_params: + - name: + inner: 57 + span: + start: 22050 + end: 22053 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22055 + end: 22061 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22071 + end: 22074 + - file_id: 0 + span: + start: 22087 + end: 22090 + - file_id: 0 + span: + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 + span: + start: 22160 + end: 22163 + - name: + inner: 65 + span: + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22077 + end: 22078 + - file_id: 0 + span: + start: 22107 + end: 22108 + - file_id: 0 + span: + start: 22157 + end: 22158 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 184 + name: + inner: 182 + span: + start: 22042 + end: 22049 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: + inner: 182 + span: + start: 22071 + end: 22078 + - mut_span: ~ + name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: + inner: 183 + span: + start: 22087 + end: 22096 + result: + inner: 182 + span: + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 183 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 182 + expected_type: 182 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 183 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 183 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 181 + - 180 + arguments: [] + ty: 183 + span: + start: 22147 + end: 22166 + ty: 183 + span: + start: 22139 + end: 22166 + ty: 182 + span: + start: 22120 + end: 22166 + ty: 182 + span: + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 + span: + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 + span: + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 189 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: + inner: 187 + span: + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: + inner: 188 + span: + start: 22250 + end: 22259 + result: + inner: 187 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 188 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 187 + expected_type: 187 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 188 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 188 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 186 + - 185 + arguments: [] + ty: 188 + span: + start: 22310 + end: 22329 + ty: 188 + span: + start: 22302 + end: 22329 + ty: 187 + span: + start: 22283 + end: 22329 + ty: 187 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 + span: + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 192 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: + inner: 191 + span: + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: + inner: 191 + span: + start: 22414 + end: 22423 + result: + inner: 191 + span: + start: 22428 + end: 22437 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 191 + expected_type: 191 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 191 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 191 + span: + start: 22469 + end: 22470 + ty: 191 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 191 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 191 + span: + start: 22503 + end: 22507 + ty: 191 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 191 + span: + start: 22512 + end: 22516 + ty: 191 + span: + start: 22511 + end: 22516 + ty: 191 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 191 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 191 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 191 + span: + start: 22567 + end: 22573 + ty: 191 + span: + start: 22438 + end: 22579 + - id: 403 + file_id: 1 + namespace: ~ + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 202 + name: + inner: 205 + span: + start: 65 + end: 69 + params: [] + result: + inner: 19 + span: + start: 75 + end: 80 + accesses: + - file_id: 1 + span: + start: 121 + end: 125 + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 81 + end: 110 + locals: [] + inferred_type: 19 + expected_type: 19 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 1 + fields: + - kind: + Int: + value: 1 + ty: 11 + span: + start: 99 + end: 100 + - kind: + Int: + value: 2 + ty: 11 + span: + start: 105 + end: 106 + ty: 19 + span: + start: 87 + end: 108 + ty: 19 + span: + start: 81 + end: 110 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 21 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 20 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 20 + span: + start: 425 + end: 429 + result: + inner: 20 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 23 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 22 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 22 + span: + start: 502 + end: 506 + result: + inner: 22 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 25 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 24 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 24 + span: + start: 579 + end: 583 + result: + inner: 24 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 27 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 26 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 26 + span: + start: 656 + end: 660 + result: + inner: 26 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 29 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 28 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 28 + span: + start: 733 + end: 737 + result: + inner: 28 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 31 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 30 + span: + start: 799 + end: 803 + result: + inner: 30 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 33 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 32 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 32 + span: + start: 885 + end: 889 + result: + inner: 32 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 35 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 34 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 34 + span: + start: 968 + end: 972 + result: + inner: 34 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 37 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 36 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 36 + span: + start: 1054 + end: 1058 + result: + inner: 36 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 39 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 38 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 38 + span: + start: 1131 + end: 1135 + result: + inner: 38 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 41 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 40 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 40 + span: + start: 1208 + end: 1212 + result: + inner: 40 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 43 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 42 + span: + start: 1283 + end: 1287 + result: + inner: 42 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 45 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 47 + span: + start: 20204 + end: 20214 + result: + inner: 50 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 45 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 47 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 50 + expected_type: 50 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 45 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 45 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 47 + span: + start: 20266 + end: 20271 + ty: 50 + span: + start: 20248 + end: 20272 + ty: 50 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 52 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 45 + span: + start: 20306 + end: 20310 + result: + inner: 47 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 45 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 47 + expected_type: 47 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 45 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 45 + span: + start: 20348 + end: 20352 + ty: 47 + span: + start: 20336 + end: 20353 + ty: 47 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 203 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 204 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 223 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 224 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 225 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 230 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 232 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 233 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 234 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 235 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 236 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 237 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 238 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 239 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 240 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 241 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 242 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 243 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 244 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 137 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 136 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 136 + expected_type: 136 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 247 + - 135 + arguments: [] + ty: 138 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 247 + - 135 + arguments: [] + ty: 138 + span: + start: 20570 + end: 20585 + ty: 136 + span: + start: 20533 + end: 20587 + ty: 136 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 139 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 138 + span: + start: 20636 + end: 20645 + result: + inner: 136 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 138 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 136 + expected_type: 136 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 250 + - 135 + arguments: [] + ty: 138 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 138 + span: + start: 20720 + end: 20725 + ty: 138 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 250 + - 135 + arguments: [] + ty: 138 + span: + start: 20680 + end: 20695 + ty: 136 + span: + start: 20665 + end: 20727 + ty: 136 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 152 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 142 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 150 + span: + start: 20829 + end: 20846 + result: + inner: 151 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 145 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 142 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 143 + span: + start: 20929 + end: 20930 + result: + inner: 144 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 144 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 144 + expected_type: 144 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 140 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 142 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 141 + - 143 + arguments: [] + ty: 150 + span: + start: 20984 + end: 21001 + ty: 144 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 144 + span: + start: 21029 + end: 21032 + ty: 143 + memory: 141 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 143 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 144 + span: + start: 21052 + end: 21055 + ty: 144 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 149 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 142 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 146 + span: + start: 21128 + end: 21143 + result: + inner: 148 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 146 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 148 + expected_type: 148 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 141 + - 147 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 140 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 142 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 141 + - 147 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 146 + span: + start: 21236 + end: 21239 + ty: 150 + span: + start: 21217 + end: 21240 + ty: 256 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 146 + span: + start: 21272 + end: 21275 + ty: 148 + span: + start: 21174 + end: 21286 + ty: 148 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 197 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 195 + span: + start: 22645 + end: 22649 + result: + inner: 196 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 195 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 196 + expected_type: 196 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 193 + - 194 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 195 + span: + start: 22684 + end: 22688 + ty: 196 + span: + start: 22674 + end: 22689 + ty: 196 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 199 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 195 + span: + start: 22726 + end: 22730 + result: + inner: 198 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 195 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 198 + expected_type: 198 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 193 + - 194 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 195 + span: + start: 22763 + end: 22767 + ty: 198 + span: + start: 22753 + end: 22768 + ty: 198 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 24773 + end: 24775 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24766 + end: 24768 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24761 + end: 24765 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24769 + end: 24772 + ty: 16 + span: + start: 24761 + end: 24772 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24781 + end: 24783 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24776 + end: 24780 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24784 + end: 24787 + ty: 16 + span: + start: 24776 + end: 24787 + ty: 16 + span: + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: + trait_index: 0 + ? - Type + - 23 + : Trait: + trait_index: 1 + ? - Type + - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 + : TypeSet: + typeset_index: 1 + ? - Type + - 158 + : TypeSet: + typeset_index: 0 + ? - Type + - 159 + : Trait: + trait_index: 12 + ? - Type + - 160 + : Trait: + trait_index: 13 + ? - Type + - 161 + : TraitAssocType: + trait_index: 13 + assoc_name: 161 + ? - Type + - 167 + : Struct: + struct_index: 0 + ? - Type + - 172 + : Trait: + trait_index: 15 + ? - Type + - 176 + : Module: + namespace_idx: 1 + ? - Value + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 + ? - Value + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 + : Function: + func_index: 26 + ? - Value + - 102 + : Function: + func_index: 27 + ? - Value + - 103 + : Function: + func_index: 28 + ? - Value + - 104 + : Function: + func_index: 29 + ? - Value + - 105 + : Function: + func_index: 30 + ? - Value + - 106 + : Function: + func_index: 31 + ? - Value + - 107 + : Function: + func_index: 32 + ? - Value + - 108 + : Function: + func_index: 33 + ? - Value + - 109 + : Function: + func_index: 34 + ? - Value + - 110 + : Function: + func_index: 35 + ? - Value + - 111 + : Function: + func_index: 36 + ? - Value + - 112 + : Function: + func_index: 37 + ? - Value + - 113 + : Function: + func_index: 38 + ? - Value + - 114 + : Function: + func_index: 39 + ? - Value + - 115 + : Function: + func_index: 40 + ? - Value + - 116 + : Function: + func_index: 41 + ? - Value + - 117 + : Function: + func_index: 42 + ? - Value + - 118 + : Function: + func_index: 43 + ? - Value + - 119 + : Function: + func_index: 44 + ? - Value + - 120 + : Function: + func_index: 45 + ? - Value + - 121 + : Function: + func_index: 46 + ? - Value + - 122 + : Function: + func_index: 47 + ? - Value + - 123 + : Function: + func_index: 48 + ? - Value + - 124 + : Function: + func_index: 49 + ? - Value + - 125 + : Function: + func_index: 50 + ? - Value + - 126 + : Function: + func_index: 51 + ? - Value + - 127 + : Function: + func_index: 52 + ? - Value + - 128 + : Function: + func_index: 53 + ? - Value + - 129 + : Function: + func_index: 54 + ? - Value + - 130 + : Function: + func_index: 55 + ? - Value + - 131 + : Function: + func_index: 56 + ? - Value + - 132 + : Function: + func_index: 57 + ? - Value + - 133 + : Function: + func_index: 58 + ? - Value + - 134 + : Function: + func_index: 59 + ? - Value + - 135 + : Function: + func_index: 60 + ? - Value + - 136 + : Function: + func_index: 61 + ? - Value + - 137 + : Function: + func_index: 62 + ? - Value + - 138 + : Function: + func_index: 63 + ? - Value + - 139 + : Function: + func_index: 64 + ? - Value + - 140 + : Function: + func_index: 65 + ? - Value + - 141 + : Function: + func_index: 66 + ? - Value + - 142 + : Function: + func_index: 67 + ? - Value + - 143 + : Function: + func_index: 68 + ? - Value + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 + : Const: + const_index: 1 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: [] +enums: [] +exports: + 205: + Function: + internal_name: + inner: 205 + span: + start: 121 + end: 125 + external_name: ~ + id: 403 +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 134 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 134 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 + - id: 402 + file_id: 1 + namespace: ~ + pub_span: ~ + name: + inner: 202 + span: + start: 19 + end: 24 + type_params: [] + attributes: [] + fields: + - name: + inner: 203 + span: + start: 35 + end: 36 + ty: + inner: 11 + span: + start: 38 + end: 41 + pub_span: + start: 31 + end: 34 + accesses: + - kind: Init + file_id: 1 + span: + start: 96 + end: 97 + - name: + inner: 204 + span: + start: 51 + end: 52 + ty: + inner: 11 + span: + start: 54 + end: 57 + pub_span: + start: 47 + end: 50 + accesses: + - kind: Init + file_id: 1 + span: + start: 102 + end: 103 + lookup: + 203: 0 + 204: 1 + accesses: + - file_id: 1 + span: + start: 75 + end: 80 + - file_id: 1 + span: + start: 87 + end: 92 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 46 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 206 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 + span: + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 + span: + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 + span: + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 + accesses: + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 - file_id: 1 span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ - name: - inner: 91 - span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: [] -enums: [] -exports: - 120: - Function: - internal_name: - inner: 120 + start: 38 + end: 41 + - file_id: 1 + span: + start: 54 + end: 57 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 + span: + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 + span: + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 + span: + start: 13511 + end: 13514 + - file_id: 0 span: - start: 121 - end: 125 - external_name: ~ - id: 107 -structs: - - id: 71 - file_id: 0 - namespace: 0 - pub_span: - start: 3581 - end: 3584 - name: - inner: 82 - span: - start: 3592 - end: 3598 - type_params: - - name: - inner: 5 - span: - start: 3599 - end: 3602 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3604 - end: 3610 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3628 - end: 3631 - - file_id: 0 - span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 - span: - start: 3622 - end: 3626 - ty: - inner: 91 - span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 - span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 - span: - start: 3915 - end: 3919 - - name: - inner: 83 - span: - start: 3647 - end: 3652 - ty: - inner: 91 - span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 - accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 - span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 - accesses: + start: 13612 + end: 13615 - file_id: 0 span: - start: 3686 - end: 3692 + start: 13737 + end: 13740 - file_id: 0 span: - start: 4051 - end: 4057 + start: 13749 + end: 13752 - file_id: 0 span: - start: 4218 - end: 4224 + start: 13875 + end: 13878 - file_id: 0 span: - start: 4462 - end: 4468 - - id: 106 - file_id: 1 - namespace: ~ - pub_span: ~ - name: - inner: 117 - span: - start: 19 - end: 24 - type_params: [] - attributes: [] - fields: - - name: - inner: 118 - span: - start: 35 - end: 36 - ty: - inner: 11 - span: - start: 38 - end: 41 - pub_span: - start: 31 - end: 34 - accesses: - - kind: Init - file_id: 1 - span: - start: 96 - end: 97 - - name: - inner: 119 - span: - start: 51 - end: 52 - ty: - inner: 11 - span: - start: 54 - end: 57 - pub_span: - start: 47 - end: 50 - accesses: - - kind: Init - file_id: 1 - span: - start: 102 - end: 103 - lookup: - 118: 0 - 119: 1 - accesses: - - file_id: 1 + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 + span: + start: 14280 + end: 14283 + - file_id: 0 + span: + start: 14292 + end: 14295 + - file_id: 0 + span: + start: 14402 + end: 14405 + - file_id: 0 + span: + start: 14518 + end: 14521 + - file_id: 0 + span: + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 span: - start: 75 - end: 80 - - file_id: 1 + start: 18219 + end: 18222 + - file_id: 0 span: - start: 87 - end: 92 -traits: - - id: 45 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 70 - span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 + start: 18231 + end: 18234 + - file_id: 0 span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] - span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 71 - span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 + start: 18359 + end: 18362 + - file_id: 0 span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] - span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 - file_id: 0 - namespace: 0 - pub_span: - start: 3259 - end: 3262 - name: - inner: 6 - span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 + start: 18371 + end: 18374 + - file_id: 0 span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3371 - end: 3375 - - file_id: 0 - span: - start: 3422 - end: 3426 - - file_id: 0 - span: - start: 3437 - end: 3441 - - file_id: 0 - span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 + start: 18502 + end: 18505 + - file_id: 0 + span: + start: 18514 + end: 18517 + - file_id: 0 + span: + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - id: 5 file_id: 0 namespace: 0 pub_span: - start: 3955 - end: 3958 + start: 151 + end: 154 name: - inner: 87 - span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 - span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] - span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 - span: - start: 4146 - end: 4150 - - file_id: 0 - span: - start: 4165 - end: 4169 - - file_id: 0 - span: - start: 4343 - end: 4347 - - file_id: 0 - span: - start: 4359 - end: 4363 - - file_id: 0 - span: - start: 4370 - end: 4374 - - file_id: 0 - span: - start: 4390 - end: 4394 - - file_id: 0 - span: - start: 4037 - end: 4041 - - file_id: 0 - span: - start: 4058 - end: 4062 - - file_id: 0 - span: - start: 4073 - end: 4077 - - file_id: 0 - span: - start: 4240 - end: 4244 - - file_id: 0 - span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 - span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 - file_id: 0 - - id: 53 - trait_index: 0 - type_params: [] - target: - inner: 10 - span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 - span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 - file_id: 0 - - id: 57 - trait_index: 1 - type_params: [] - target: inner: 7 span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 - span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 - file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 - span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 + start: 160 + end: 163 + attributes: + - Intrinsic type_params: [] - target: - inner: 13 - span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 + body: 10 + accesses: + - file_id: 0 + span: + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 + - file_id: 0 + span: + start: 3750 + end: 3753 + - file_id: 0 + span: + start: 3758 + end: 3761 + - file_id: 0 + span: + start: 4060 + end: 4063 + - file_id: 0 + span: + start: 4068 + end: 4071 + - file_id: 0 + span: + start: 4076 + end: 4079 + - file_id: 0 + span: + start: 4712 + end: 4715 + - file_id: 0 + span: + start: 4720 + end: 4723 + - file_id: 0 + span: + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 + span: + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 file_id: 0 namespace: 0 - parent: ~ pub_span: - start: 0 - end: 3 - name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 - span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 - span: - start: 27 - end: 32 - const_value: - Int: 65536 - accesses: [] - attributes: [] - - id: 91 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: ~ + start: 179 + end: 182 name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 - span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 + inner: 8 span: - start: 5836 - end: 5847 - const_value: - Int: 32 + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 accesses: - file_id: 0 span: - start: 5989 - end: 6004 + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 + - file_id: 0 + span: + start: 10297 + end: 10300 + - file_id: 0 + span: + start: 10309 + end: 10312 + - file_id: 0 + span: + start: 10431 + end: 10434 + - file_id: 0 + span: + start: 10443 + end: 10446 + - file_id: 0 + span: + start: 10776 + end: 10779 + - file_id: 0 + span: + start: 10788 + end: 10791 + - file_id: 0 + span: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 + - file_id: 0 + span: + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 22 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 121 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__structs.snap b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__structs.snap index ba10ed3..c02790d 100644 --- a/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__structs.snap +++ b/crates/wx-compiler/src/tir/snapshots/wx_compiler__tir__tests__structs.snap @@ -29,217 +29,347 @@ types: args: [] - TypeParam: owner: - Function: 1 + Trait: 0 + param_index: 0 + - Function: + signature: + items: + - 20 + - 20 + - 20 + params_count: 2 + - TypeParam: + owner: + Trait: 1 param_index: 0 + - Function: + signature: + items: + - 22 + - 22 + - 22 + params_count: 2 - TypeParam: owner: Trait: 2 param_index: 0 + - Function: + signature: + items: + - 24 + - 24 + - 24 + params_count: 2 + - TypeParam: + owner: + Trait: 3 + param_index: 0 + - Function: + signature: + items: + - 26 + - 26 + - 26 + params_count: 2 + - TypeParam: + owner: + Trait: 4 + param_index: 0 + - Function: + signature: + items: + - 28 + - 28 + - 28 + params_count: 2 + - TypeParam: + owner: + Trait: 5 + param_index: 0 + - Function: + signature: + items: + - 30 + - 30 + params_count: 1 + - TypeParam: + owner: + Trait: 6 + param_index: 0 + - Function: + signature: + items: + - 32 + - 32 + - 32 + params_count: 2 + - TypeParam: + owner: + Trait: 7 + param_index: 0 + - Function: + signature: + items: + - 34 + - 34 + - 34 + params_count: 2 + - TypeParam: + owner: + Trait: 8 + param_index: 0 + - Function: + signature: + items: + - 36 + - 36 + - 36 + params_count: 2 + - TypeParam: + owner: + Trait: 9 + param_index: 0 + - Function: + signature: + items: + - 38 + - 38 + - 38 + params_count: 2 + - TypeParam: + owner: + Trait: 10 + param_index: 0 + - Function: + signature: + items: + - 40 + - 40 + - 40 + params_count: 2 + - TypeParam: + owner: + Trait: 11 + param_index: 0 + - Function: + signature: + items: + - 42 + - 42 + params_count: 1 + - TypeParam: + owner: + Function: 38 + param_index: 0 + - TypeParam: + owner: + Trait: 14 + param_index: 0 - Pointer: to: 6 - memory: 21 - mutable: false + memory: 45 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 21 + trait_index: 14 + assoc_name: 61 + base: 45 - TypeParam: owner: - Trait: 0 + Trait: 12 param_index: 0 - TypeParam: owner: - Trait: 1 + Trait: 13 param_index: 0 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 23 + trait_index: 12 + assoc_name: 62 + base: 47 - Function: signature: items: - - 21 - - 23 - - 26 + - 45 + - 47 + - 50 params_count: 2 - Function: signature: items: - - 21 - - 23 + - 45 + - 47 params_count: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 20 + trait_index: 14 + assoc_name: 61 + base: 44 - AssocTypeProjection: - trait_index: 0 - assoc_name: 10 - base: 29 + trait_index: 12 + assoc_name: 62 + base: 53 - Function: signature: items: - - 20 - - 29 - - 30 + - 44 + - 53 + - 54 params_count: 2 - TypeParam: owner: - Function: 2 + Function: 39 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 32 + trait_index: 14 + assoc_name: 61 + base: 56 - Function: signature: items: - - 32 - - 33 + - 56 + - 57 params_count: 1 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 0 - TypeParam: owner: - Function: 3 + Function: 40 param_index: 1 - Slice: - of: 36 - memory: 35 - mutable: false + of: 60 + memory: 59 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 35 + trait_index: 14 + assoc_name: 61 + base: 59 - Function: signature: items: - - 37 - - 38 + - 61 + - 62 params_count: 1 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 0 - TypeParam: owner: - Function: 4 + Function: 41 param_index: 1 - Slice: - of: 41 - memory: 40 - mutable: false + of: 65 + memory: 64 + ownership: Shared - Pointer: - to: 41 - memory: 40 - mutable: false + to: 65 + memory: 64 + ownership: Shared - Function: signature: items: - - 42 - - 43 + - 66 + - 67 params_count: 1 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 0 - TypeParam: owner: - Function: 5 + Function: 42 param_index: 1 - Pointer: - to: 46 - memory: 45 - mutable: false + to: 70 + memory: 69 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 45 + trait_index: 14 + assoc_name: 61 + base: 69 - Slice: - of: 46 - memory: 45 - mutable: false + of: 70 + memory: 69 + ownership: Shared - Function: signature: items: - - 47 - - 48 - - 49 + - 71 + - 72 + - 73 params_count: 2 - TypeParam: owner: - Function: 6 + Function: 43 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 51 + trait_index: 14 + assoc_name: 61 + base: 75 - Function: signature: items: - - 52 + - 76 params_count: 0 - TypeParam: owner: - Function: 7 + Function: 44 param_index: 1 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 54 + trait_index: 14 + assoc_name: 61 + base: 78 - Function: signature: items: - - 55 + - 79 params_count: 0 - TypeParam: owner: - Function: 8 + Function: 45 param_index: 0 - Pointer: to: 6 - memory: 57 - mutable: true + memory: 81 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 57 + trait_index: 14 + assoc_name: 61 + base: 81 - Function: signature: items: - - 58 + - 82 - 6 - - 59 + - 83 - 2 params_count: 3 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 0 - TypeParam: owner: - Function: 9 + Function: 46 param_index: 2 - Pointer: to: 6 - memory: 62 - mutable: true + memory: 86 + ownership: Exclusive - TypeParam: owner: - Function: 9 + Function: 46 param_index: 1 - Pointer: to: 6 - memory: 64 - mutable: false + memory: 88 + ownership: Shared - Function: signature: items: - - 63 - - 65 - - 61 + - 87 + - 89 + - 85 - 2 params_count: 3 - Function: @@ -272,6 +402,60 @@ types: - 15 - 15 params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + params_count: 1 + - Function: + signature: + items: + - 13 + - 13 + params_count: 1 + - Function: + signature: + items: + - 11 + - 11 + - 11 + params_count: 2 + - Function: + signature: + items: + - 13 + - 13 + - 13 + params_count: 2 + - Function: + signature: + items: + - 14 + - 14 + - 14 + params_count: 2 + - Function: + signature: + items: + - 15 + - 15 + - 15 + params_count: 2 + - Function: + signature: + items: + - 10 + - 10 + - 10 + params_count: 2 + - Function: + signature: + items: + - 12 + - 12 + - 12 + params_count: 2 - Function: signature: items: @@ -380,14 +564,85 @@ types: - 15 - 14 params_count: 1 + - Function: + signature: + items: + - 10 + - 10 + params_count: 1 + - Function: + signature: + items: + - 12 + - 12 + params_count: 1 + - Function: + signature: + items: + - 7 + - 7 + - 7 + params_count: 2 + - Function: + signature: + items: + - 7 + - 7 + params_count: 1 + - Function: + signature: + items: + - 6 + - 6 + - 6 + params_count: 2 + - Function: + signature: + items: + - 6 + - 6 + params_count: 1 + - Function: + signature: + items: + - 9 + - 9 + - 9 + params_count: 2 + - Function: + signature: + items: + - 9 + - 9 + params_count: 1 + - Function: + signature: + items: + - 8 + - 8 + - 8 + params_count: 2 + - Function: + signature: + items: + - 8 + - 8 + params_count: 1 + - Function: + signature: + items: + - 16 + - 16 + - 16 + params_count: 2 - TypeParam: owner: - Struct: 71 + Struct: 366 param_index: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 90 + trait_index: 14 + assoc_name: 61 + base: 133 - TypeParam: owner: ImplBlock: 2 @@ -395,248 +650,263 @@ types: - Struct: struct_index: 0 args: - - 92 + - 135 - Function: signature: items: - - 93 + - 136 params_count: 0 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 92 + trait_index: 14 + assoc_name: 61 + base: 135 - Function: signature: items: - - 95 - - 93 + - 138 + - 136 params_count: 1 - TypeParam: owner: - Trait: 3 + Trait: 15 param_index: 0 - AssocTypeProjection: - trait_index: 3 - assoc_name: 5 - base: 97 + trait_index: 15 + assoc_name: 57 + base: 140 - Pointer: - to: 97 - memory: 98 - mutable: true + to: 140 + memory: 141 + ownership: Exclusive - TypeParam: owner: - Function: 77 + Function: 372 param_index: 1 - Pointer: - to: 100 - memory: 98 - mutable: true + to: 143 + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 100 - - 101 + - 142 + - 143 + - 144 params_count: 2 - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 98 + trait_index: 14 + assoc_name: 61 + base: 141 - TypeParam: owner: - Function: 78 + Function: 373 param_index: 1 - Slice: - of: 104 - memory: 98 - mutable: true + of: 147 + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 103 - - 105 + - 142 + - 146 + - 148 params_count: 2 - Struct: struct_index: 0 args: - - 98 + - 141 - Pointer: to: 6 - memory: 98 - mutable: true + memory: 141 + ownership: Exclusive - Function: signature: items: - - 99 - - 107 - - 108 + - 142 + - 150 + - 151 params_count: 2 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 0 - TypeParam: owner: - Function: 80 + Function: 375 param_index: 1 - Pointer: - to: 111 - memory: 110 - mutable: false + to: 154 + memory: 153 + ownership: Shared - Function: signature: items: - - 112 + - 155 params_count: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 0 - TypeParam: owner: - Function: 81 + Function: 376 param_index: 1 - Pointer: - to: 115 - memory: 114 - mutable: true + to: 158 + memory: 157 + ownership: Exclusive - Function: signature: items: - - 116 + - 159 params_count: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 0 - TypeParam: owner: - Function: 82 + Function: 377 param_index: 1 - Pointer: - to: 119 - memory: 118 - mutable: false + to: 162 + memory: 161 + ownership: Shared - Function: signature: items: - - 120 + - 163 - 16 params_count: 1 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 0 - TypeParam: owner: - Function: 83 + Function: 378 param_index: 1 - Pointer: - to: 123 - memory: 122 - mutable: false + to: 166 + memory: 165 + ownership: Shared - Pointer: - to: 123 - memory: 122 - mutable: true + to: 166 + memory: 165 + ownership: Exclusive - Function: signature: items: - - 124 - - 125 + - 167 + - 168 params_count: 1 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 0 - TypeParam: owner: - Function: 84 + Function: 379 param_index: 1 - Pointer: - to: 128 - memory: 127 - mutable: false + to: 171 + memory: 170 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 127 + trait_index: 14 + assoc_name: 61 + base: 170 - Function: signature: items: - - 129 - - 130 - - 129 + - 172 + - 173 + - 172 params_count: 2 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 0 - TypeParam: owner: - Function: 85 + Function: 380 param_index: 1 - Pointer: - to: 133 - memory: 132 - mutable: false + to: 176 + memory: 175 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 132 + trait_index: 14 + assoc_name: 61 + base: 175 - Function: signature: items: - - 134 - - 135 - - 134 + - 177 + - 178 + - 177 params_count: 2 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 0 - TypeParam: owner: - Function: 86 + Function: 381 param_index: 1 - Pointer: - to: 138 - memory: 137 - mutable: true + to: 181 + memory: 180 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 137 + trait_index: 14 + assoc_name: 61 + base: 180 - Function: signature: items: - - 139 - - 140 - - 139 + - 182 + - 183 + - 182 params_count: 2 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 0 - TypeParam: owner: - Function: 87 + Function: 382 param_index: 1 - Pointer: - to: 143 - memory: 142 - mutable: true + to: 186 + memory: 185 + ownership: Exclusive - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 142 + trait_index: 14 + assoc_name: 61 + base: 185 - Function: signature: items: - - 144 - - 145 - - 144 + - 187 + - 188 + - 187 + params_count: 2 + - TypeParam: + owner: + Function: 383 + param_index: 0 + - AssocTypeProjection: + trait_index: 14 + assoc_name: 61 + base: 190 + - Function: + signature: + items: + - 191 + - 191 + - 191 params_count: 2 - TypeParam: owner: @@ -647,28 +917,28 @@ types: ImplBlock: 3 param_index: 1 - Slice: - of: 148 - memory: 147 - mutable: false + of: 194 + memory: 193 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 147 + trait_index: 14 + assoc_name: 61 + base: 193 - Function: signature: items: - - 149 - - 150 + - 195 + - 196 params_count: 1 - Pointer: - to: 148 - memory: 147 - mutable: false + to: 194 + memory: 193 + ownership: Shared - Function: signature: items: - - 149 - - 152 + - 195 + - 198 params_count: 1 - Function: signature: @@ -688,103 +958,229 @@ types: - 19 params_count: 0 - FunctionItem: - id: 1 - type_args: - - 1 + id: 58 + type_args: [] - FunctionItem: - id: 2 - type_args: - - 1 + id: 59 + type_args: [] + - FunctionItem: + id: 64 + type_args: [] + - FunctionItem: + id: 68 + type_args: [] + - FunctionItem: + id: 72 + type_args: [] + - FunctionItem: + id: 76 + type_args: [] + - FunctionItem: + id: 82 + type_args: [] + - FunctionItem: + id: 60 + type_args: [] + - FunctionItem: + id: 86 + type_args: [] + - FunctionItem: + id: 88 + type_args: [] + - FunctionItem: + id: 90 + type_args: [] + - FunctionItem: + id: 92 + type_args: [] + - FunctionItem: + id: 94 + type_args: [] + - FunctionItem: + id: 98 + type_args: [] + - FunctionItem: + id: 77 + type_args: [] + - FunctionItem: + id: 83 + type_args: [] + - FunctionItem: + id: 95 + type_args: [] + - FunctionItem: + id: 65 + type_args: [] + - FunctionItem: + id: 69 + type_args: [] + - FunctionItem: + id: 73 + type_args: [] + - FunctionItem: + id: 78 + type_args: [] + - FunctionItem: + id: 84 + type_args: [] + - FunctionItem: + id: 61 + type_args: [] + - FunctionItem: + id: 87 + type_args: [] + - FunctionItem: + id: 89 + type_args: [] + - FunctionItem: + id: 91 + type_args: [] + - FunctionItem: + id: 93 + type_args: [] + - FunctionItem: + id: 96 + type_args: [] + - FunctionItem: + id: 99 + type_args: [] + - FunctionItem: + id: 79 + type_args: [] + - FunctionItem: + id: 85 + type_args: [] + - FunctionItem: + id: 97 + type_args: [] + - FunctionItem: + id: 66 + type_args: [] + - FunctionItem: + id: 70 + type_args: [] + - FunctionItem: + id: 74 + type_args: [] + - FunctionItem: + id: 80 + type_args: [] + - FunctionItem: + id: 62 + type_args: [] + - FunctionItem: + id: 67 + type_args: [] + - FunctionItem: + id: 71 + type_args: [] + - FunctionItem: + id: 75 + type_args: [] + - FunctionItem: + id: 81 + type_args: [] + - FunctionItem: + id: 63 + type_args: [] + - FunctionItem: + id: 38 + type_args: + - 1 + - FunctionItem: + id: 39 + type_args: + - 1 - TypeParam: owner: - Function: 72 + Function: 367 param_index: 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 159 + - 247 - 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 159 + - 247 - 1 - TypeParam: owner: - Function: 73 + Function: 368 param_index: 1 - FunctionItem: - id: 7 + id: 44 type_args: - - 162 + - 250 - 1 - FunctionItem: - id: 6 + id: 43 type_args: - - 162 + - 250 - 1 - Struct: struct_index: 0 args: - 1 - FunctionItem: - id: 72 + id: 367 type_args: - 1 - - 100 + - 143 - FunctionItem: - id: 5 + id: 42 type_args: - 1 - 1 - Pointer: - to: 104 - memory: 98 - mutable: false + to: 147 + memory: 141 + ownership: Shared - FunctionItem: - id: 73 + id: 368 type_args: - 1 - - 104 + - 147 - Slice: - of: 104 - memory: 98 - mutable: false + of: 147 + memory: 141 + ownership: Shared - AssocTypeProjection: - trait_index: 2 - assoc_name: 9 - base: 118 + trait_index: 14 + assoc_name: 61 + base: 161 - FunctionItem: - id: 6 + id: 43 type_args: - - 128 - - 127 + - 171 + - 170 - FunctionItem: - id: 6 + id: 43 type_args: - - 133 - - 132 + - 176 + - 175 - FunctionItem: - id: 6 + id: 43 type_args: - - 138 - - 137 + - 181 + - 180 - FunctionItem: - id: 6 + id: 43 type_args: - - 143 - - 142 + - 186 + - 185 - FunctionItem: - id: 3 + id: 40 type_args: - 1 - 1 - Slice: of: 1 - memory: 147 - mutable: false + memory: 193 + ownership: Shared - FunctionItem: - id: 4 + id: 41 type_args: - 1 - 1 @@ -818,6905 +1214,23393 @@ diagnostics: message: "" notes: [] functions: - - id: 1 + - id: 38 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 48 - end: 51 + start: 1349 + end: 1352 type_params: - name: - inner: 5 + inner: 57 span: - start: 67 - end: 70 + start: 1368 + end: 1371 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 72 - end: 78 + start: 1373 + end: 1379 typeset: ~ accesses: - file_id: 0 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - file_id: 0 span: - start: 97 - end: 100 + start: 1398 + end: 1401 - file_id: 0 span: - start: 111 - end: 114 + start: 1412 + end: 1415 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 31 + signature_index: 55 name: - inner: 4 + inner: 56 span: - start: 55 - end: 66 + start: 1356 + end: 1367 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 80 - end: 83 + start: 1381 + end: 1384 ty: - inner: 20 + inner: 44 span: - start: 85 - end: 88 + start: 1386 + end: 1389 - mut_span: ~ name: - inner: 8 + inner: 60 span: - start: 90 - end: 95 + start: 1391 + end: 1396 ty: - inner: 29 + inner: 53 span: - start: 97 - end: 106 + start: 1398 + end: 1407 result: - inner: 30 + inner: 54 span: - start: 111 - end: 128 + start: 1412 + end: 1429 accesses: - file_id: 0 span: - start: 3466 - end: 3477 + start: 20248 + end: 20259 attributes: - Intrinsic body: ~ - - id: 2 + - id: 39 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 144 - end: 147 + start: 1445 + end: 1448 type_params: - name: - inner: 5 + inner: 57 span: - start: 163 - end: 166 + start: 1464 + end: 1467 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 168 - end: 174 + start: 1469 + end: 1475 typeset: ~ accesses: - file_id: 0 span: - start: 181 - end: 184 + start: 1482 + end: 1485 - file_id: 0 span: - start: 189 - end: 192 + start: 1490 + end: 1493 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 34 + signature_index: 58 name: - inner: 11 + inner: 63 span: - start: 151 - end: 162 + start: 1452 + end: 1463 params: - mut_span: ~ name: - inner: 7 + inner: 59 span: - start: 176 - end: 179 + start: 1477 + end: 1480 ty: - inner: 32 + inner: 56 span: - start: 181 - end: 184 + start: 1482 + end: 1485 result: - inner: 33 + inner: 57 span: - start: 189 - end: 198 + start: 1490 + end: 1499 accesses: - file_id: 0 span: - start: 3554 - end: 3565 + start: 20336 + end: 20347 attributes: - Intrinsic body: ~ - - id: 3 + - id: 40 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 214 - end: 217 + start: 1515 + end: 1518 type_params: - name: - inner: 5 + inner: 57 span: - start: 231 - end: 234 + start: 1532 + end: 1535 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 236 - end: 242 + start: 1537 + end: 1543 typeset: ~ accesses: - file_id: 0 span: - start: 254 - end: 257 + start: 1555 + end: 1558 - file_id: 0 span: - start: 267 - end: 270 + start: 1569 + end: 1572 - name: - inner: 13 + inner: 65 span: - start: 244 - end: 245 + start: 1545 + end: 1546 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 261 - end: 262 + start: 1562 + end: 1563 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 39 + signature_index: 63 name: - inner: 12 + inner: 64 span: - start: 221 - end: 230 + start: 1522 + end: 1531 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 247 - end: 252 + start: 1548 + end: 1553 ty: - inner: 37 + inner: 61 span: - start: 254 - end: 262 + start: 1555 + end: 1564 result: - inner: 38 + inner: 62 span: - start: 267 - end: 276 + start: 1569 + end: 1578 accesses: - file_id: 0 span: - start: 5704 - end: 5713 + start: 22674 + end: 22683 attributes: - Intrinsic body: ~ - - id: 4 + - id: 41 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 292 - end: 295 + start: 1594 + end: 1597 type_params: - name: - inner: 5 + inner: 57 span: - start: 309 - end: 312 + start: 1611 + end: 1614 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 314 - end: 320 + start: 1616 + end: 1622 typeset: ~ accesses: - file_id: 0 span: - start: 332 - end: 335 + start: 1634 + end: 1637 - file_id: 0 span: - start: 345 - end: 348 + start: 1648 + end: 1651 - name: - inner: 13 + inner: 65 span: - start: 322 - end: 323 + start: 1624 + end: 1625 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 339 - end: 340 + start: 1641 + end: 1642 - file_id: 0 span: - start: 351 - end: 352 + start: 1654 + end: 1655 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 44 + signature_index: 68 name: - inner: 15 + inner: 67 span: - start: 299 - end: 308 + start: 1601 + end: 1610 params: - mut_span: ~ name: - inner: 14 + inner: 66 span: - start: 325 - end: 330 + start: 1627 + end: 1632 ty: - inner: 42 + inner: 66 span: - start: 332 - end: 340 + start: 1634 + end: 1643 result: - inner: 43 + inner: 67 span: - start: 345 - end: 352 + start: 1648 + end: 1655 accesses: - file_id: 0 span: - start: 5783 - end: 5792 + start: 22753 + end: 22762 attributes: - Intrinsic body: ~ - - id: 5 + - id: 42 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 368 - end: 371 + start: 1671 + end: 1674 type_params: - name: - inner: 5 + inner: 57 span: - start: 392 - end: 395 + start: 1695 + end: 1698 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 397 - end: 403 + start: 1700 + end: 1706 typeset: ~ accesses: - file_id: 0 span: - start: 414 - end: 417 + start: 1717 + end: 1720 - file_id: 0 span: - start: 428 - end: 431 + start: 1731 + end: 1734 - file_id: 0 span: - start: 442 - end: 445 + start: 1745 + end: 1748 - name: - inner: 13 + inner: 65 span: - start: 405 - end: 406 + start: 1708 + end: 1709 bounds: traits: [] typeset: ~ accesses: - file_id: 0 span: - start: 420 - end: 421 + start: 1723 + end: 1724 - file_id: 0 span: - start: 449 - end: 450 + start: 1752 + end: 1753 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 50 + signature_index: 74 name: - inner: 16 + inner: 68 span: - start: 375 - end: 391 + start: 1678 + end: 1694 params: - mut_span: ~ name: - inner: 17 + inner: 69 span: - start: 408 - end: 412 + start: 1711 + end: 1715 ty: - inner: 47 + inner: 71 span: - start: 414 - end: 421 + start: 1717 + end: 1724 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 423 - end: 426 + start: 1726 + end: 1729 ty: - inner: 48 + inner: 72 span: - start: 428 - end: 437 + start: 1731 + end: 1740 result: - inner: 49 + inner: 73 span: - start: 442 - end: 450 + start: 1745 + end: 1754 accesses: - file_id: 0 span: - start: 4419 - end: 4435 + start: 21174 + end: 21190 attributes: - Intrinsic body: ~ - - id: 6 + - id: 43 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 466 - end: 469 + start: 1770 + end: 1773 type_params: - name: - inner: 13 + inner: 65 span: - start: 481 - end: 482 + start: 1785 + end: 1786 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 484 - end: 487 + start: 1788 + end: 1791 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 489 - end: 495 + start: 1793 + end: 1799 typeset: ~ accesses: - file_id: 0 span: - start: 502 - end: 505 + start: 1806 + end: 1809 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 53 + signature_index: 77 name: - inner: 19 + inner: 71 span: - start: 473 - end: 480 + start: 1777 + end: 1784 params: [] result: - inner: 52 + inner: 76 span: - start: 502 - end: 511 + start: 1806 + end: 1815 accesses: - file_id: 0 span: - start: 3765 - end: 3772 + start: 20547 + end: 20554 - file_id: 0 span: - start: 3921 - end: 3928 + start: 20703 + end: 20710 - file_id: 0 span: - start: 5078 - end: 5085 + start: 21825 + end: 21832 - file_id: 0 span: - start: 5237 - end: 5244 + start: 21984 + end: 21991 - file_id: 0 span: - start: 5408 - end: 5415 + start: 22147 + end: 22154 - file_id: 0 span: - start: 5579 - end: 5586 + start: 22310 + end: 22317 attributes: - Intrinsic body: ~ - - id: 7 + - id: 44 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 527 - end: 530 + start: 1831 + end: 1834 type_params: - name: - inner: 13 + inner: 65 span: - start: 543 - end: 544 + start: 1847 + end: 1848 bounds: traits: [] typeset: ~ accesses: [] - name: - inner: 5 + inner: 57 span: - start: 546 - end: 549 + start: 1850 + end: 1853 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 551 - end: 557 + start: 1855 + end: 1861 typeset: ~ accesses: - file_id: 0 span: - start: 564 - end: 567 + start: 1868 + end: 1871 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 56 + signature_index: 80 name: - inner: 20 + inner: 72 span: - start: 534 - end: 542 + start: 1838 + end: 1846 params: [] result: - inner: 55 + inner: 79 span: - start: 564 - end: 573 + start: 1868 + end: 1877 accesses: - file_id: 0 span: - start: 3788 - end: 3796 + start: 20570 + end: 20578 - file_id: 0 span: - start: 3898 - end: 3906 + start: 20680 + end: 20688 attributes: - Intrinsic body: ~ - - id: 8 + - id: 45 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 589 - end: 592 + start: 1893 + end: 1896 type_params: - name: - inner: 5 + inner: 57 span: - start: 608 - end: 611 + start: 1912 + end: 1915 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: [] span: - start: 613 - end: 619 + start: 1917 + end: 1923 typeset: ~ accesses: - file_id: 0 span: - start: 626 - end: 629 + start: 1930 + end: 1933 - file_id: 0 span: - start: 654 - end: 657 + start: 1954 + end: 1957 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 60 + signature_index: 84 name: - inner: 21 + inner: 73 span: - start: 596 - end: 607 + start: 1900 + end: 1911 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 621 - end: 624 + start: 1925 + end: 1928 ty: - inner: 58 + inner: 82 span: - start: 626 - end: 638 + start: 1930 + end: 1938 - mut_span: ~ name: - inner: 24 + inner: 75 span: - start: 640 - end: 643 + start: 1940 + end: 1943 ty: inner: 6 span: - start: 645 - end: 647 + start: 1945 + end: 1947 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 649 - end: 652 + start: 1949 + end: 1952 ty: - inner: 59 + inner: 83 span: - start: 654 - end: 663 + start: 1954 + end: 1963 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 9 + - id: 46 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 680 - end: 683 + start: 1980 + end: 1983 type_params: - name: - inner: 9 + inner: 61 span: - start: 704 - end: 708 + start: 2004 + end: 2008 bounds: traits: [] typeset: typeset_index: 1 span: - start: 710 - end: 721 + start: 2010 + end: 2021 accesses: - file_id: 0 span: - start: 757 - end: 761 + start: 2057 + end: 2061 - file_id: 0 span: - start: 799 - end: 803 + start: 2099 + end: 2103 - file_id: 0 span: - start: 854 - end: 858 + start: 2150 + end: 2154 - name: - inner: 27 + inner: 78 span: - start: 727 - end: 733 + start: 2027 + end: 2033 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 61 + - - 61 + - Equals: 85 span: - start: 735 - end: 763 + start: 2035 + end: 2063 typeset: ~ accesses: - file_id: 0 span: - start: 836 - end: 842 + start: 2132 + end: 2138 - name: - inner: 28 + inner: 79 span: - start: 769 - end: 775 + start: 2069 + end: 2075 bounds: traits: - - trait_index: 2 + - trait_index: 14 bindings: - - - 9 - - Equals: 61 + - - 61 + - Equals: 85 span: - start: 777 - end: 805 + start: 2077 + end: 2105 typeset: ~ accesses: - file_id: 0 span: - start: 814 - end: 820 + start: 2114 + end: 2120 type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 66 + signature_index: 90 name: - inner: 25 + inner: 76 span: - start: 687 - end: 698 + start: 1987 + end: 1998 params: - mut_span: ~ name: - inner: 22 + inner: 74 span: - start: 809 - end: 812 + start: 2109 + end: 2112 ty: - inner: 63 + inner: 87 span: - start: 814 - end: 829 + start: 2114 + end: 2125 - mut_span: ~ name: - inner: 29 + inner: 80 span: - start: 831 - end: 834 + start: 2127 + end: 2130 ty: - inner: 65 + inner: 89 span: - start: 836 - end: 847 + start: 2132 + end: 2143 - mut_span: ~ name: - inner: 18 + inner: 70 span: - start: 849 - end: 852 + start: 2145 + end: 2148 ty: - inner: 61 + inner: 85 span: - start: 854 - end: 858 + start: 2150 + end: 2154 result: ~ accesses: [] attributes: - Intrinsic body: ~ - - id: 10 + - id: 47 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 875 - end: 878 + start: 2171 + end: 2174 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 67 + signature_index: 91 name: - inner: 30 + inner: 81 span: - start: 882 - end: 896 + start: 2178 + end: 2192 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 897 - end: 902 + start: 2193 + end: 2198 ty: inner: 11 span: - start: 904 - end: 907 + start: 2200 + end: 2203 result: inner: 13 span: - start: 912 - end: 915 + start: 2208 + end: 2211 accesses: [] attributes: - Intrinsic body: ~ - - id: 11 + - id: 48 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 931 - end: 934 + start: 2227 + end: 2230 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 68 + signature_index: 92 name: - inner: 34 + inner: 83 span: - start: 938 - end: 952 + start: 2234 + end: 2248 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 953 - end: 958 + start: 2249 + end: 2254 ty: inner: 10 span: - start: 960 - end: 963 + start: 2256 + end: 2259 result: inner: 12 span: - start: 968 - end: 971 + start: 2264 + end: 2267 accesses: [] attributes: - Intrinsic body: ~ - - id: 12 + - id: 49 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 987 - end: 990 + start: 2283 + end: 2286 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 69 + signature_index: 93 name: - inner: 36 + inner: 84 span: - start: 994 - end: 1006 + start: 2290 + end: 2302 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1007 - end: 1012 + start: 2303 + end: 2308 ty: inner: 13 span: - start: 1014 - end: 1017 + start: 2310 + end: 2313 result: inner: 11 span: - start: 1022 - end: 1025 + start: 2318 + end: 2321 accesses: [] attributes: - Intrinsic body: ~ - - id: 13 + - id: 50 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1041 - end: 1044 + start: 2337 + end: 2340 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 37 + inner: 85 span: - start: 1048 - end: 1056 + start: 2344 + end: 2352 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1057 - end: 1062 + start: 2353 + end: 2358 ty: inner: 14 span: - start: 1064 - end: 1067 + start: 2360 + end: 2363 result: inner: 14 span: - start: 1072 - end: 1075 + start: 2368 + end: 2371 accesses: [] attributes: - Intrinsic body: ~ - - id: 14 + - id: 51 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1091 - end: 1094 + start: 2387 + end: 2390 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 39 + inner: 86 span: - start: 1098 - end: 1106 + start: 2394 + end: 2402 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1107 - end: 1112 + start: 2403 + end: 2408 ty: inner: 15 span: - start: 1114 - end: 1117 + start: 2410 + end: 2413 result: inner: 15 span: - start: 1122 - end: 1125 + start: 2418 + end: 2421 accesses: [] attributes: - Intrinsic body: ~ - - id: 15 + - id: 52 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1141 - end: 1144 + start: 2437 + end: 2440 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 41 + inner: 87 span: - start: 1148 - end: 1155 + start: 2444 + end: 2451 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1156 - end: 1161 + start: 2452 + end: 2457 ty: inner: 14 span: - start: 1163 - end: 1166 + start: 2459 + end: 2462 result: inner: 14 span: - start: 1171 - end: 1174 + start: 2467 + end: 2470 accesses: [] attributes: - Intrinsic body: ~ - - id: 16 + - id: 53 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1190 - end: 1193 + start: 2486 + end: 2489 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 42 + inner: 88 span: - start: 1197 - end: 1204 + start: 2493 + end: 2500 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1205 - end: 1210 + start: 2501 + end: 2506 ty: inner: 15 span: - start: 1212 - end: 1215 + start: 2508 + end: 2511 result: inner: 15 span: - start: 1220 - end: 1223 + start: 2516 + end: 2519 accesses: [] attributes: - Intrinsic body: ~ - - id: 17 + - id: 54 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1239 - end: 1242 + start: 2535 + end: 2538 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 43 + inner: 89 span: - start: 1246 - end: 1255 + start: 2542 + end: 2551 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1256 - end: 1261 + start: 2552 + end: 2557 ty: inner: 14 span: - start: 1263 - end: 1266 + start: 2559 + end: 2562 result: inner: 14 span: - start: 1271 - end: 1274 + start: 2567 + end: 2570 accesses: [] attributes: - Intrinsic body: ~ - - id: 18 + - id: 55 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1290 - end: 1293 + start: 2586 + end: 2589 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 44 + inner: 90 span: - start: 1297 - end: 1306 + start: 2593 + end: 2602 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1307 - end: 1312 + start: 2603 + end: 2608 ty: inner: 15 span: - start: 1314 - end: 1317 + start: 2610 + end: 2613 result: inner: 15 span: - start: 1322 - end: 1325 + start: 2618 + end: 2621 accesses: [] attributes: - Intrinsic body: ~ - - id: 19 + - id: 56 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1341 - end: 1344 + start: 2637 + end: 2640 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 70 + signature_index: 94 name: - inner: 45 + inner: 91 span: - start: 1348 - end: 1356 + start: 2644 + end: 2652 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1357 - end: 1362 + start: 2653 + end: 2658 ty: inner: 14 span: - start: 1364 - end: 1367 + start: 2660 + end: 2663 result: inner: 14 span: - start: 1372 - end: 1375 + start: 2668 + end: 2671 accesses: [] attributes: - Intrinsic body: ~ - - id: 20 + - id: 57 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1391 - end: 1394 + start: 2687 + end: 2690 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 71 + signature_index: 95 name: - inner: 46 + inner: 92 span: - start: 1398 - end: 1406 + start: 2694 + end: 2702 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1407 - end: 1412 + start: 2703 + end: 2708 ty: inner: 15 span: - start: 1414 - end: 1417 + start: 2710 + end: 2713 result: inner: 15 span: - start: 1422 - end: 1425 + start: 2718 + end: 2721 accesses: [] attributes: - Intrinsic body: ~ - - id: 21 + - id: 58 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1441 - end: 1444 + start: 2737 + end: 2740 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 72 + signature_index: 94 name: - inner: 47 + inner: 93 span: - start: 1448 - end: 1463 + start: 2744 + end: 2753 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1464 - end: 1469 + start: 2754 + end: 2759 ty: - inner: 11 + inner: 14 span: - start: 1471 - end: 1474 + start: 2761 + end: 2764 result: inner: 14 span: - start: 1479 - end: 1482 - accesses: [] + start: 2769 + end: 2772 + accesses: + - file_id: 0 + span: + start: 6081 + end: 6090 attributes: - Intrinsic body: ~ - - id: 22 + - id: 59 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1498 - end: 1501 + start: 2788 + end: 2791 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 73 + signature_index: 95 name: - inner: 48 + inner: 94 span: - start: 1505 - end: 1520 + start: 2795 + end: 2804 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1521 - end: 1526 + start: 2805 + end: 2810 ty: - inner: 10 + inner: 15 span: - start: 1528 - end: 1531 + start: 2812 + end: 2815 result: - inner: 14 + inner: 15 span: - start: 1536 - end: 1539 - accesses: [] + start: 2820 + end: 2823 + accesses: + - file_id: 0 + span: + start: 6230 + end: 6239 attributes: - Intrinsic body: ~ - - id: 23 + - id: 60 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1555 - end: 1558 + start: 2839 + end: 2842 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 74 + signature_index: 96 name: - inner: 49 + inner: 95 span: - start: 1562 - end: 1577 + start: 2846 + end: 2853 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1578 - end: 1583 + start: 2854 + end: 2859 ty: - inner: 13 + inner: 11 span: - start: 1585 - end: 1588 + start: 2861 + end: 2864 result: - inner: 14 + inner: 11 span: - start: 1593 - end: 1596 - accesses: [] + start: 2869 + end: 2872 + accesses: + - file_id: 0 + span: + start: 6822 + end: 6829 + - file_id: 0 + span: + start: 13596 + end: 13603 + - file_id: 0 + span: + start: 16604 + end: 16611 attributes: - Intrinsic body: ~ - - id: 24 + - id: 61 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1612 - end: 1615 + start: 2888 + end: 2891 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 75 + signature_index: 97 name: - inner: 50 + inner: 96 span: - start: 1619 - end: 1634 + start: 2895 + end: 2902 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1635 - end: 1640 + start: 2903 + end: 2908 ty: - inner: 12 + inner: 13 span: - start: 1642 - end: 1645 + start: 2910 + end: 2913 result: - inner: 14 + inner: 13 span: - start: 1650 - end: 1653 - accesses: [] + start: 2918 + end: 2921 + accesses: + - file_id: 0 + span: + start: 9420 + end: 9427 attributes: - Intrinsic body: ~ - - id: 25 + - id: 62 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1669 - end: 1672 + start: 2937 + end: 2940 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 76 + signature_index: 94 name: - inner: 51 + inner: 97 span: - start: 1676 - end: 1691 + start: 2944 + end: 2951 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1692 - end: 1697 + start: 2952 + end: 2957 ty: - inner: 11 + inner: 14 span: - start: 1699 - end: 1702 + start: 2959 + end: 2962 result: - inner: 15 + inner: 14 span: - start: 1707 - end: 1710 - accesses: [] + start: 2967 + end: 2970 + accesses: + - file_id: 0 + span: + start: 11917 + end: 11924 attributes: - Intrinsic body: ~ - - id: 26 + - id: 63 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1726 - end: 1729 + start: 2986 + end: 2989 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 77 + signature_index: 95 name: - inner: 52 + inner: 98 span: - start: 1733 - end: 1748 + start: 2993 + end: 3000 params: - mut_span: ~ name: - inner: 31 + inner: 82 span: - start: 1749 - end: 1754 + start: 3001 + end: 3006 ty: - inner: 10 + inner: 15 span: - start: 1756 - end: 1759 + start: 3008 + end: 3011 result: inner: 15 span: - start: 1764 - end: 1767 - accesses: [] + start: 3016 + end: 3019 + accesses: + - file_id: 0 + span: + start: 12629 + end: 12636 attributes: - Intrinsic body: ~ - - id: 27 + - id: 64 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1783 - end: 1786 + start: 3035 + end: 3038 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 78 + signature_index: 98 name: - inner: 53 + inner: 99 span: - start: 1790 - end: 1805 + start: 3042 + end: 3049 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1806 - end: 1811 + start: 3050 + end: 3051 ty: - inner: 13 + inner: 11 + span: + start: 3053 + end: 3056 + - mut_span: ~ + name: + inner: 101 span: - start: 1813 - end: 1816 + start: 3058 + end: 3059 + ty: + inner: 11 + span: + start: 3061 + end: 3064 result: - inner: 15 + inner: 11 span: - start: 1821 - end: 1824 - accesses: [] + start: 3069 + end: 3072 + accesses: + - file_id: 0 + span: + start: 6328 + end: 6335 + - file_id: 0 + span: + start: 7549 + end: 7556 + - file_id: 0 + span: + start: 12955 + end: 12962 + - file_id: 0 + span: + start: 14502 + end: 14509 + - file_id: 0 + span: + start: 15953 + end: 15960 + - file_id: 0 + span: + start: 17524 + end: 17531 attributes: - Intrinsic body: ~ - - id: 28 + - id: 65 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1840 - end: 1843 + start: 3088 + end: 3091 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 79 + signature_index: 99 name: - inner: 54 + inner: 102 span: - start: 1847 - end: 1862 + start: 3095 + end: 3102 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3103 + end: 3104 + ty: + inner: 13 + span: + start: 3106 + end: 3109 + - mut_span: ~ + name: + inner: 101 span: - start: 1863 - end: 1868 + start: 3111 + end: 3112 ty: - inner: 12 + inner: 13 span: - start: 1870 - end: 1873 + start: 3114 + end: 3117 result: - inner: 15 + inner: 13 span: - start: 1878 - end: 1881 - accesses: [] + start: 3122 + end: 3125 + accesses: + - file_id: 0 + span: + start: 8926 + end: 8933 + - file_id: 0 + span: + start: 10147 + end: 10154 attributes: - Intrinsic body: ~ - - id: 29 + - id: 66 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 1897 - end: 1900 + start: 3141 + end: 3144 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 80 + signature_index: 100 name: - inner: 55 + inner: 103 span: - start: 1904 - end: 1917 + start: 3148 + end: 3155 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 1918 - end: 1923 + start: 3156 + end: 3157 ty: inner: 14 span: - start: 1925 - end: 1928 - result: - inner: 11 - span: - start: 1933 - end: 1936 - accesses: [] - attributes: - - Intrinsic - body: ~ - - id: 30 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: - start: 1952 - end: 1955 - type_params: [] - type_param_parent: ~ - inherited_type_param_count: 0 - signature_index: 81 - name: - inner: 56 - span: - start: 1959 - end: 1972 - params: + start: 3159 + end: 3162 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 1973 - end: 1978 + start: 3164 + end: 3165 ty: inner: 14 span: - start: 1980 - end: 1983 + start: 3167 + end: 3170 result: - inner: 10 + inner: 14 span: - start: 1988 - end: 1991 - accesses: [] + start: 3175 + end: 3178 + accesses: + - file_id: 0 + span: + start: 11524 + end: 11531 attributes: - Intrinsic body: ~ - - id: 31 + - id: 67 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2007 - end: 2010 + start: 3194 + end: 3197 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 82 + signature_index: 101 name: - inner: 57 + inner: 104 span: - start: 2014 - end: 2027 + start: 3201 + end: 3208 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2028 - end: 2033 + start: 3209 + end: 3210 + ty: + inner: 15 + span: + start: 3212 + end: 3215 + - mut_span: ~ + name: + inner: 101 + span: + start: 3217 + end: 3218 ty: inner: 15 span: - start: 2035 - end: 2038 + start: 3220 + end: 3223 result: - inner: 11 + inner: 15 span: - start: 2043 - end: 2046 - accesses: [] + start: 3228 + end: 3231 + accesses: + - file_id: 0 + span: + start: 12236 + end: 12243 attributes: - Intrinsic body: ~ - - id: 32 + - id: 68 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2062 - end: 2065 + start: 3247 + end: 3250 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 83 + signature_index: 98 name: - inner: 58 + inner: 105 span: - start: 2069 - end: 2082 + start: 3254 + end: 3261 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2083 - end: 2088 + start: 3262 + end: 3263 ty: - inner: 15 + inner: 11 + span: + start: 3265 + end: 3268 + - mut_span: ~ + name: + inner: 101 span: - start: 2090 - end: 2093 + start: 3270 + end: 3271 + ty: + inner: 11 + span: + start: 3273 + end: 3276 result: - inner: 10 + inner: 11 span: - start: 2098 - end: 2101 - accesses: [] + start: 3281 + end: 3284 + accesses: + - file_id: 0 + span: + start: 6429 + end: 6436 + - file_id: 0 + span: + start: 7683 + end: 7690 + - file_id: 0 + span: + start: 13087 + end: 13094 + - file_id: 0 + span: + start: 14634 + end: 14641 + - file_id: 0 + span: + start: 16087 + end: 16094 + - file_id: 0 + span: + start: 17658 + end: 17665 attributes: - Intrinsic body: ~ - - id: 33 + - id: 69 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2117 - end: 2120 + start: 3300 + end: 3303 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 84 + signature_index: 99 name: - inner: 59 + inner: 106 span: - start: 2124 - end: 2137 + start: 3307 + end: 3314 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2138 - end: 2143 + start: 3315 + end: 3316 ty: - inner: 14 + inner: 13 span: - start: 2145 - end: 2148 + start: 3318 + end: 3321 + - mut_span: ~ + name: + inner: 101 + span: + start: 3323 + end: 3324 + ty: + inner: 13 + span: + start: 3326 + end: 3329 result: inner: 13 span: - start: 2153 - end: 2156 - accesses: [] + start: 3334 + end: 3337 + accesses: + - file_id: 0 + span: + start: 9027 + end: 9034 + - file_id: 0 + span: + start: 10281 + end: 10288 attributes: - Intrinsic body: ~ - - id: 34 + - id: 70 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2172 - end: 2175 + start: 3353 + end: 3356 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 85 + signature_index: 100 name: - inner: 60 + inner: 107 span: - start: 2179 - end: 2192 + start: 3360 + end: 3367 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2193 - end: 2198 + start: 3368 + end: 3369 ty: inner: 14 span: - start: 2200 - end: 2203 + start: 3371 + end: 3374 + - mut_span: ~ + name: + inner: 101 + span: + start: 3376 + end: 3377 + ty: + inner: 14 + span: + start: 3379 + end: 3382 result: - inner: 12 + inner: 14 span: - start: 2208 - end: 2211 - accesses: [] + start: 3387 + end: 3390 + accesses: + - file_id: 0 + span: + start: 11625 + end: 11632 attributes: - Intrinsic body: ~ - - id: 35 + - id: 71 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2227 - end: 2230 + start: 3406 + end: 3409 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 86 + signature_index: 101 name: - inner: 61 + inner: 108 span: - start: 2234 - end: 2247 + start: 3413 + end: 3420 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3421 + end: 3422 + ty: + inner: 15 + span: + start: 3424 + end: 3427 + - mut_span: ~ + name: + inner: 101 span: - start: 2248 - end: 2253 + start: 3429 + end: 3430 ty: inner: 15 span: - start: 2255 - end: 2258 + start: 3432 + end: 3435 result: - inner: 13 + inner: 15 span: - start: 2263 - end: 2266 - accesses: [] + start: 3440 + end: 3443 + accesses: + - file_id: 0 + span: + start: 12337 + end: 12344 attributes: - Intrinsic body: ~ - - id: 36 + - id: 72 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2282 - end: 2285 + start: 3459 + end: 3462 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 87 + signature_index: 98 name: - inner: 62 + inner: 109 span: - start: 2289 - end: 2302 + start: 3466 + end: 3473 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2303 - end: 2308 + start: 3474 + end: 3475 ty: - inner: 15 + inner: 11 span: - start: 2310 - end: 2313 - result: - inner: 12 - span: - start: 2318 - end: 2321 - accesses: [] + start: 3477 + end: 3480 + - mut_span: ~ + name: + inner: 101 + span: + start: 3482 + end: 3483 + ty: + inner: 11 + span: + start: 3485 + end: 3488 + result: + inner: 11 + span: + start: 3493 + end: 3496 + accesses: + - file_id: 0 + span: + start: 6530 + end: 6537 + - file_id: 0 + span: + start: 7817 + end: 7824 + - file_id: 0 + span: + start: 13219 + end: 13226 + - file_id: 0 + span: + start: 14766 + end: 14773 + - file_id: 0 + span: + start: 16221 + end: 16228 + - file_id: 0 + span: + start: 17792 + end: 17799 attributes: - Intrinsic body: ~ - - id: 37 + - id: 73 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2337 - end: 2340 + start: 3512 + end: 3515 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 88 + signature_index: 99 name: - inner: 63 + inner: 110 span: - start: 2344 - end: 2359 + start: 3519 + end: 3526 params: - mut_span: ~ name: - inner: 31 + inner: 100 span: - start: 2360 - end: 2365 + start: 3527 + end: 3528 ty: - inner: 14 + inner: 13 + span: + start: 3530 + end: 3533 + - mut_span: ~ + name: + inner: 101 + span: + start: 3535 + end: 3536 + ty: + inner: 13 span: - start: 2367 - end: 2370 + start: 3538 + end: 3541 result: - inner: 15 + inner: 13 span: - start: 2375 - end: 2378 - accesses: [] + start: 3546 + end: 3549 + accesses: + - file_id: 0 + span: + start: 9128 + end: 9135 + - file_id: 0 + span: + start: 10415 + end: 10422 attributes: - Intrinsic body: ~ - - id: 38 + - id: 74 file_id: 0 namespace: 0 parent: ~ pub_span: - start: 2394 - end: 2397 + start: 3565 + end: 3568 type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 89 + signature_index: 100 name: - inner: 64 + inner: 111 span: - start: 2401 - end: 2415 + start: 3572 + end: 3579 params: - mut_span: ~ name: - inner: 31 + inner: 100 + span: + start: 3580 + end: 3581 + ty: + inner: 14 + span: + start: 3583 + end: 3586 + - mut_span: ~ + name: + inner: 101 span: - start: 2416 - end: 2421 + start: 3588 + end: 3589 ty: - inner: 15 + inner: 14 span: - start: 2423 - end: 2426 + start: 3591 + end: 3594 result: inner: 14 span: - start: 2431 - end: 2434 - accesses: [] + start: 3599 + end: 3602 + accesses: + - file_id: 0 + span: + start: 11726 + end: 11733 attributes: - Intrinsic body: ~ - - id: 80 + - id: 75 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4581 - end: 4584 - type_params: - - name: - inner: 5 - span: - start: 4593 - end: 4596 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4598 - end: 4604 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4614 - end: 4617 - - name: - inner: 13 - span: - start: 4606 - end: 4607 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4620 - end: 4621 + start: 3618 + end: 3621 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 113 + signature_index: 101 name: - inner: 93 + inner: 112 span: - start: 4588 - end: 4592 - params: [] + start: 3625 + end: 3632 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3633 + end: 3634 + ty: + inner: 15 + span: + start: 3636 + end: 3639 + - mut_span: ~ + name: + inner: 101 + span: + start: 3641 + end: 3642 + ty: + inner: 15 + span: + start: 3644 + end: 3647 result: - inner: 112 + inner: 15 span: - start: 4614 - end: 4621 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4622 - end: 4644 - locals: [] - inferred_type: 112 - expected_type: 112 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 112 - span: - start: 4632 - end: 4633 - ty: 112 + start: 3652 + end: 3655 + accesses: + - file_id: 0 span: - start: 4622 - end: 4644 - - id: 81 + start: 12438 + end: 12445 + attributes: + - Intrinsic + body: ~ + - id: 76 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4664 - end: 4667 - type_params: - - name: - inner: 5 - span: - start: 4680 - end: 4683 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4685 - end: 4691 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4701 - end: 4704 - - name: - inner: 13 - span: - start: 4693 - end: 4694 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4711 - end: 4712 + start: 3671 + end: 3674 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 117 + signature_index: 98 name: - inner: 94 + inner: 113 span: - start: 4671 - end: 4679 - params: [] + start: 3678 + end: 3685 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 3686 + end: 3687 + ty: + inner: 11 + span: + start: 3689 + end: 3692 + - mut_span: ~ + name: + inner: 101 + span: + start: 3694 + end: 3695 + ty: + inner: 11 + span: + start: 3697 + end: 3700 result: - inner: 116 + inner: 11 span: - start: 4701 - end: 4712 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4713 - end: 4735 - locals: [] - inferred_type: 116 - expected_type: 116 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Int: - value: 0 - ty: 116 - span: - start: 4723 - end: 4724 - ty: 116 + start: 3705 + end: 3708 + accesses: + - file_id: 0 span: - start: 4713 - end: 4735 - - id: 82 + start: 6631 + end: 6638 + - file_id: 0 + span: + start: 13351 + end: 13358 + - file_id: 0 + span: + start: 16355 + end: 16362 + attributes: + - Intrinsic + body: ~ + - id: 77 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4755 - end: 4758 - type_params: - - name: - inner: 5 - span: - start: 4770 - end: 4773 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4775 - end: 4781 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4791 - end: 4794 - - file_id: 0 - span: - start: 4825 - end: 4828 - - name: - inner: 13 - span: - start: 4783 - end: 4784 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4797 - end: 4798 + start: 3724 + end: 3727 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 121 + signature_index: 102 name: - inner: 95 + inner: 114 span: - start: 4762 - end: 4769 + start: 3731 + end: 3738 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4786 - end: 4789 + start: 3739 + end: 3740 ty: - inner: 120 + inner: 10 span: - start: 4791 - end: 4798 - result: - inner: 16 - span: - start: 4803 - end: 4807 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4808 - end: 4845 - locals: - - name: - inner: 91 - span: - start: 4786 - end: 4789 - ty: 120 - mut_span: ~ - accesses: - - span: - start: 4818 - end: 4821 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Eq - span: - start: 4835 - end: 4837 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 171 - span: - start: 4818 - end: 4821 - right: - kind: - Int: - value: 0 - ty: 171 - span: - start: 4838 - end: 4839 - ty: 16 - span: - start: 4818 - end: 4839 - ty: 16 + start: 3742 + end: 3745 + - mut_span: ~ + name: + inner: 101 + span: + start: 3747 + end: 3748 + ty: + inner: 10 + span: + start: 3750 + end: 3753 + result: + inner: 10 + span: + start: 3758 + end: 3761 + accesses: + - file_id: 0 span: - start: 4808 - end: 4845 - - id: 83 + start: 7943 + end: 7950 + - file_id: 0 + span: + start: 14898 + end: 14905 + - file_id: 0 + span: + start: 17926 + end: 17933 + attributes: + - Intrinsic + body: ~ + - id: 78 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4865 - end: 4868 - type_params: - - name: - inner: 5 + start: 3777 + end: 3780 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 115 + span: + start: 3784 + end: 3791 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4881 - end: 4884 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4886 - end: 4892 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4902 - end: 4905 - - file_id: 0 - span: - start: 4914 - end: 4917 - - name: + start: 3792 + end: 3793 + ty: inner: 13 span: - start: 4894 - end: 4895 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4908 - end: 4909 - - file_id: 0 - span: - start: 4924 - end: 4925 + start: 3795 + end: 3798 + - mut_span: ~ + name: + inner: 101 + span: + start: 3800 + end: 3801 + ty: + inner: 13 + span: + start: 3803 + end: 3806 + result: + inner: 13 + span: + start: 3811 + end: 3814 + accesses: + - file_id: 0 + span: + start: 9229 + end: 9236 + attributes: + - Intrinsic + body: ~ + - id: 79 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3830 + end: 3833 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 126 + signature_index: 103 name: - inner: 97 + inner: 116 span: - start: 4872 - end: 4880 + start: 3837 + end: 3844 params: - mut_span: ~ name: - inner: 91 + inner: 100 + span: + start: 3845 + end: 3846 + ty: + inner: 12 + span: + start: 3848 + end: 3851 + - mut_span: ~ + name: + inner: 101 span: - start: 4897 - end: 4900 + start: 3853 + end: 3854 ty: - inner: 124 + inner: 12 span: - start: 4902 - end: 4909 + start: 3856 + end: 3859 result: - inner: 125 + inner: 12 span: - start: 4914 - end: 4925 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4926 - end: 4950 - locals: - - name: - inner: 91 - span: - start: 4897 - end: 4900 - ty: 124 - mut_span: ~ - accesses: - - span: - start: 4936 - end: 4939 - kind: Read - inferred_type: 125 - expected_type: 125 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 125 - span: - start: 4936 - end: 4939 - ty: 125 + start: 3864 + end: 3867 + accesses: + - file_id: 0 span: - start: 4926 - end: 4950 - - id: 84 + start: 10541 + end: 10548 + attributes: + - Intrinsic + body: ~ + - id: 80 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 4970 - end: 4973 - type_params: - - name: - inner: 5 + start: 3883 + end: 3886 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 117 + span: + start: 3890 + end: 3897 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 4981 - end: 4984 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 4986 - end: 4992 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5002 - end: 5005 - - file_id: 0 - span: - start: 5018 - end: 5021 - - file_id: 0 - span: - start: 5032 - end: 5035 - - file_id: 0 - span: - start: 5058 - end: 5061 - - file_id: 0 - span: - start: 5091 - end: 5094 - - name: - inner: 13 + start: 3898 + end: 3899 + ty: + inner: 14 span: - start: 4994 - end: 4995 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5008 - end: 5009 - - file_id: 0 - span: - start: 5038 - end: 5039 - - file_id: 0 - span: - start: 5088 - end: 5089 + start: 3901 + end: 3904 + - mut_span: ~ + name: + inner: 101 + span: + start: 3906 + end: 3907 + ty: + inner: 14 + span: + start: 3909 + end: 3912 + result: + inner: 14 + span: + start: 3917 + end: 3920 + accesses: + - file_id: 0 + span: + start: 11827 + end: 11834 + attributes: + - Intrinsic + body: ~ + - id: 81 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 3936 + end: 3939 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 131 + signature_index: 101 name: - inner: 98 + inner: 118 span: - start: 4977 - end: 4980 + start: 3943 + end: 3950 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 4997 - end: 5000 + start: 3951 + end: 3952 ty: - inner: 129 + inner: 15 span: - start: 5002 - end: 5009 + start: 3954 + end: 3957 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5011 - end: 5016 + start: 3959 + end: 3960 ty: - inner: 130 + inner: 15 span: - start: 5018 - end: 5027 + start: 3962 + end: 3965 result: - inner: 129 + inner: 15 span: - start: 5032 - end: 5039 - accesses: [] + start: 3970 + end: 3973 + accesses: + - file_id: 0 + span: + start: 12539 + end: 12546 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5040 - end: 5109 - locals: - - name: - inner: 91 - span: - start: 4997 - end: 5000 - ty: 129 - mut_span: ~ - accesses: - - span: - start: 5051 - end: 5054 - kind: Read - - name: - inner: 86 - span: - start: 5011 - end: 5016 - ty: 130 - mut_span: ~ - accesses: - - span: - start: 5070 - end: 5075 - kind: Read - inferred_type: 129 - expected_type: 129 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5068 - end: 5069 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 130 - span: - start: 5051 - end: 5054 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5076 - end: 5077 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 130 - span: - start: 5070 - end: 5075 - right: - kind: - GenericCall: - id: 6 - type_args: - - 128 - - 127 - arguments: [] - ty: 130 - span: - start: 5078 - end: 5097 - ty: 130 - span: - start: 5070 - end: 5097 - ty: 129 - span: - start: 5051 - end: 5097 - ty: 129 - span: - start: 5040 - end: 5109 - - id: 85 + - Intrinsic + body: ~ + - id: 82 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5129 - end: 5132 - type_params: - - name: - inner: 5 - span: - start: 5140 - end: 5143 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5145 - end: 5151 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5161 - end: 5164 - - file_id: 0 - span: - start: 5177 - end: 5180 - - file_id: 0 - span: - start: 5191 - end: 5194 - - file_id: 0 - span: - start: 5217 - end: 5220 - - file_id: 0 - span: - start: 5250 - end: 5253 - - name: - inner: 13 - span: - start: 5153 - end: 5154 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5167 - end: 5168 - - file_id: 0 - span: - start: 5197 - end: 5198 - - file_id: 0 - span: - start: 5247 - end: 5248 + start: 3989 + end: 3992 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 136 + signature_index: 98 name: - inner: 99 + inner: 119 span: - start: 5136 - end: 5139 + start: 3996 + end: 4003 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5156 - end: 5159 + start: 4004 + end: 4005 ty: - inner: 134 + inner: 11 span: - start: 5161 - end: 5168 + start: 4007 + end: 4010 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5170 - end: 5175 + start: 4012 + end: 4013 ty: - inner: 135 + inner: 11 span: - start: 5177 - end: 5186 + start: 4015 + end: 4018 result: - inner: 134 + inner: 11 span: - start: 5191 - end: 5198 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5199 - end: 5268 - locals: - - name: - inner: 91 - span: - start: 5156 - end: 5159 - ty: 134 - mut_span: ~ - accesses: - - span: - start: 5210 - end: 5213 - kind: Read - - name: - inner: 86 - span: - start: 5170 - end: 5175 - ty: 135 - mut_span: ~ - accesses: - - span: - start: 5229 - end: 5234 - kind: Read - inferred_type: 134 - expected_type: 134 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5227 - end: 5228 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 135 - span: - start: 5210 - end: 5213 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5235 - end: 5236 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 135 - span: - start: 5229 - end: 5234 - right: - kind: - GenericCall: - id: 6 - type_args: - - 133 - - 132 - arguments: [] - ty: 135 - span: - start: 5237 - end: 5256 - ty: 135 - span: - start: 5229 - end: 5256 - ty: 134 - span: - start: 5210 - end: 5256 - ty: 134 + start: 4023 + end: 4026 + accesses: + - file_id: 0 span: - start: 5199 - end: 5268 - - id: 86 + start: 6732 + end: 6739 + - file_id: 0 + span: + start: 13483 + end: 13490 + - file_id: 0 + span: + start: 16489 + end: 16496 + attributes: + - Intrinsic + body: ~ + - id: 83 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5288 - end: 5291 - type_params: - - name: - inner: 5 + start: 4042 + end: 4045 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 120 + span: + start: 4049 + end: 4056 + params: + - mut_span: ~ + name: + inner: 100 span: - start: 5303 - end: 5306 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5308 - end: 5314 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5324 - end: 5327 - - file_id: 0 - span: - start: 5344 - end: 5347 - - file_id: 0 - span: - start: 5358 - end: 5361 - - file_id: 0 - span: - start: 5388 - end: 5391 - - file_id: 0 - span: - start: 5421 - end: 5424 - - name: - inner: 13 + start: 4057 + end: 4058 + ty: + inner: 10 span: - start: 5316 - end: 5317 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5334 - end: 5335 - - file_id: 0 - span: - start: 5368 - end: 5369 - - file_id: 0 - span: - start: 5418 - end: 5419 + start: 4060 + end: 4063 + - mut_span: ~ + name: + inner: 101 + span: + start: 4065 + end: 4066 + ty: + inner: 10 + span: + start: 4068 + end: 4071 + result: + inner: 10 + span: + start: 4076 + end: 4079 + accesses: + - file_id: 0 + span: + start: 8044 + end: 8051 + - file_id: 0 + span: + start: 15030 + end: 15037 + - file_id: 0 + span: + start: 18060 + end: 18067 + attributes: + - Intrinsic + body: ~ + - id: 84 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 4095 + end: 4098 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 141 + signature_index: 99 name: - inner: 100 + inner: 121 span: - start: 5295 - end: 5302 + start: 4102 + end: 4109 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5319 - end: 5322 + start: 4110 + end: 4111 ty: - inner: 139 + inner: 13 span: - start: 5324 - end: 5335 + start: 4113 + end: 4116 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5337 - end: 5342 + start: 4118 + end: 4119 ty: - inner: 140 + inner: 13 span: - start: 5344 - end: 5353 + start: 4121 + end: 4124 result: - inner: 139 + inner: 13 span: - start: 5358 - end: 5369 - accesses: [] + start: 4129 + end: 4132 + accesses: + - file_id: 0 + span: + start: 9330 + end: 9337 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5370 - end: 5439 - locals: - - name: - inner: 91 - span: - start: 5319 - end: 5322 - ty: 139 - mut_span: ~ - accesses: - - span: - start: 5381 - end: 5384 - kind: Read - - name: - inner: 86 - span: - start: 5337 - end: 5342 - ty: 140 - mut_span: ~ - accesses: - - span: - start: 5400 - end: 5405 - kind: Read - inferred_type: 139 - expected_type: 139 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Add - span: - start: 5398 - end: 5399 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 140 - span: - start: 5381 - end: 5384 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5406 - end: 5407 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 140 - span: - start: 5400 - end: 5405 - right: - kind: - GenericCall: - id: 6 - type_args: - - 138 - - 137 - arguments: [] - ty: 140 - span: - start: 5408 - end: 5427 - ty: 140 - span: - start: 5400 - end: 5427 - ty: 139 - span: - start: 5381 - end: 5427 - ty: 139 - span: - start: 5370 - end: 5439 - - id: 87 + - Intrinsic + body: ~ + - id: 85 file_id: 0 - namespace: 1 + namespace: 0 parent: ~ pub_span: - start: 5459 - end: 5462 - type_params: - - name: - inner: 5 - span: - start: 5474 - end: 5477 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 5479 - end: 5485 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5495 - end: 5498 - - file_id: 0 - span: - start: 5515 - end: 5518 - - file_id: 0 - span: - start: 5529 - end: 5532 - - file_id: 0 - span: - start: 5559 - end: 5562 - - file_id: 0 - span: - start: 5592 - end: 5595 - - name: - inner: 13 - span: - start: 5487 - end: 5488 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 5505 - end: 5506 - - file_id: 0 - span: - start: 5539 - end: 5540 - - file_id: 0 - span: - start: 5589 - end: 5590 + start: 4148 + end: 4151 + type_params: [] type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 146 + signature_index: 103 name: - inner: 101 + inner: 122 span: - start: 5466 - end: 5473 + start: 4155 + end: 4162 params: - mut_span: ~ name: - inner: 91 + inner: 100 span: - start: 5490 - end: 5493 + start: 4163 + end: 4164 ty: - inner: 144 + inner: 12 span: - start: 5495 - end: 5506 + start: 4166 + end: 4169 - mut_span: ~ name: - inner: 86 + inner: 101 span: - start: 5508 - end: 5513 + start: 4171 + end: 4172 ty: - inner: 145 + inner: 12 span: - start: 5515 - end: 5524 - result: - inner: 144 - span: - start: 5529 - end: 5540 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5541 - end: 5610 - locals: - - name: - inner: 91 - span: - start: 5490 - end: 5493 - ty: 144 - mut_span: ~ - accesses: - - span: - start: 5552 - end: 5555 - kind: Read - - name: - inner: 86 - span: - start: 5508 - end: 5513 - ty: 145 - mut_span: ~ - accesses: - - span: - start: 5571 - end: 5576 - kind: Read - inferred_type: 144 - expected_type: 144 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Sub - span: - start: 5569 - end: 5570 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 145 - span: - start: 5552 - end: 5555 - right: - kind: - Binary: - operator: - inner: Mul - span: - start: 5577 - end: 5578 - left: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 145 - span: - start: 5571 - end: 5576 - right: - kind: - GenericCall: - id: 6 - type_args: - - 143 - - 142 - arguments: [] - ty: 145 - span: - start: 5579 - end: 5598 - ty: 145 - span: - start: 5571 - end: 5598 - ty: 144 - span: - start: 5552 - end: 5598 - ty: 144 - span: - start: 5541 - end: 5610 - - id: 107 - file_id: 1 - namespace: ~ - parent: ~ - pub_span: ~ - type_params: [] - type_param_parent: ~ - inherited_type_param_count: 0 - signature_index: 156 - name: - inner: 118 - span: - start: 67 - end: 71 - params: [] + start: 4174 + end: 4177 result: - inner: 19 + inner: 12 span: - start: 77 - end: 80 + start: 4182 + end: 4185 accesses: - - file_id: 1 - span: - start: 124 - end: 128 - attributes: [] - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 81 - end: 113 - locals: [] - inferred_type: 19 - expected_type: 19 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 1 - fields: [] - ty: 19 - span: - start: 87 - end: 111 - ty: 19 + - file_id: 0 span: - start: 81 - end: 113 - - id: 68 + start: 10642 + end: 10649 + attributes: + - Intrinsic + body: ~ + - id: 86 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4201 + end: 4204 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 27 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 79 + inner: 123 span: - start: 3404 - end: 3408 + start: 4208 + end: 4218 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3409 - end: 3413 + start: 4219 + end: 4220 ty: - inner: 21 + inner: 11 span: - start: 3409 - end: 3413 + start: 4222 + end: 4225 - mut_span: ~ name: - inner: 8 + inner: 101 span: - start: 3415 - end: 3420 + start: 4227 + end: 4228 ty: - inner: 23 + inner: 11 span: - start: 3422 - end: 3432 + start: 4230 + end: 4233 result: - inner: 26 + inner: 11 span: - start: 3437 - end: 3455 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3456 - end: 3496 - locals: - - name: - inner: 80 - span: - start: 3409 - end: 3413 - ty: 21 - mut_span: ~ - accesses: - - span: - start: 3478 - end: 3482 - kind: Read - - name: - inner: 8 - span: - start: 3415 - end: 3420 - ty: 23 - mut_span: ~ - accesses: - - span: - start: 3484 - end: 3489 - kind: Read - inferred_type: 26 - expected_type: 26 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 1 - type_args: - - 21 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 21 - span: - start: 3478 - end: 3482 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 23 - span: - start: 3484 - end: 3489 - ty: 26 - span: - start: 3466 - end: 3490 - ty: 26 + start: 4238 + end: 4241 + accesses: + - file_id: 0 span: - start: 3456 - end: 3496 - - id: 69 + start: 6924 + end: 6934 + - file_id: 0 + span: + start: 8159 + end: 8169 + - file_id: 0 + span: + start: 13718 + end: 13728 + - file_id: 0 + span: + start: 15168 + end: 15178 + - file_id: 0 + span: + start: 16728 + end: 16738 + - file_id: 0 + span: + start: 18200 + end: 18210 + - file_id: 0 + span: + start: 19003 + end: 19013 + attributes: + - Intrinsic + body: ~ + - id: 87 file_id: 0 namespace: 0 - parent: - Trait: 2 - pub_span: ~ + parent: ~ + pub_span: + start: 4257 + end: 4260 type_params: [] - type_param_parent: - Trait: 2 - inherited_type_param_count: 1 - signature_index: 28 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 81 + inner: 124 span: - start: 3519 - end: 3523 + start: 4264 + end: 4274 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 3524 - end: 3528 + start: 4275 + end: 4276 ty: - inner: 21 + inner: 13 span: - start: 3524 - end: 3528 + start: 4278 + end: 4281 + - mut_span: ~ + name: + inner: 101 + span: + start: 4283 + end: 4284 + ty: + inner: 13 + span: + start: 4286 + end: 4289 result: - inner: 23 + inner: 13 span: - start: 3533 - end: 3543 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3544 - end: 3577 - locals: - - name: - inner: 80 - span: - start: 3524 - end: 3528 - ty: 21 - mut_span: ~ - accesses: - - span: - start: 3566 - end: 3570 - kind: Read - inferred_type: 23 - expected_type: 23 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 2 - type_args: - - 21 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 21 - span: - start: 3566 - end: 3570 - ty: 23 - span: - start: 3554 - end: 3571 - ty: 23 + start: 4294 + end: 4297 + accesses: + - file_id: 0 span: - start: 3544 - end: 3577 - - id: 72 + start: 9522 + end: 9532 + - file_id: 0 + span: + start: 10757 + end: 10767 + attributes: + - Intrinsic + body: ~ + - id: 88 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3718 - end: 3721 - type_params: - - name: - inner: 13 - span: - start: 3728 - end: 3729 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3775 - end: 3776 - - file_id: 0 - span: - start: 3799 - end: 3800 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 94 + start: 4313 + end: 4316 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 84 + inner: 125 span: - start: 3725 - end: 3727 - params: [] + start: 4320 + end: 4329 + params: + - mut_span: ~ + name: + inner: 100 + span: + start: 4330 + end: 4331 + ty: + inner: 11 + span: + start: 4333 + end: 4336 + - mut_span: ~ + name: + inner: 101 + span: + start: 4338 + end: 4339 + ty: + inner: 11 + span: + start: 4341 + end: 4344 result: - inner: 93 + inner: 11 span: - start: 3736 - end: 3740 + start: 4349 + end: 4352 accesses: - file_id: 0 span: - start: 4226 - end: 4228 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3741 - end: 3811 - locals: [] - inferred_type: 93 - expected_type: 93 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - GenericCall: - id: 6 - type_args: - - 159 - - 92 - arguments: [] - ty: 95 - span: - start: 3765 - end: 3779 - - kind: - GenericCall: - id: 7 - type_args: - - 159 - - 92 - arguments: [] - ty: 95 - span: - start: 3788 - end: 3803 - ty: 93 - span: - start: 3751 - end: 3805 - ty: 93 + start: 7032 + end: 7041 + - file_id: 0 span: - start: 3741 - end: 3811 - - id: 73 + start: 8300 + end: 8309 + - file_id: 0 + span: + start: 13857 + end: 13866 + - file_id: 0 + span: + start: 15307 + end: 15316 + - file_id: 0 + span: + start: 16869 + end: 16878 + - file_id: 0 + span: + start: 18341 + end: 18350 + - file_id: 0 + span: + start: 19146 + end: 19155 + attributes: + - Intrinsic + body: ~ + - id: 89 file_id: 0 namespace: 0 - parent: - GenericImpl: 2 + parent: ~ pub_span: - start: 3831 - end: 3834 - type_params: - - name: - inner: 13 - span: - start: 3844 - end: 3845 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3909 - end: 3910 - - file_id: 0 - span: - start: 3931 - end: 3932 - type_param_parent: - ImplBlock: 2 - inherited_type_param_count: 1 - signature_index: 96 + start: 4368 + end: 4371 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 85 + inner: 126 span: - start: 3838 - end: 3843 + start: 4375 + end: 4384 params: - mut_span: ~ name: - inner: 86 + inner: 100 + span: + start: 4385 + end: 4386 + ty: + inner: 13 + span: + start: 4388 + end: 4391 + - mut_span: ~ + name: + inner: 101 span: - start: 3847 - end: 3852 + start: 4393 + end: 4394 ty: - inner: 95 + inner: 13 span: - start: 3854 - end: 3863 + start: 4396 + end: 4399 result: - inner: 93 + inner: 13 span: - start: 3868 - end: 3872 + start: 4404 + end: 4407 accesses: - file_id: 0 span: - start: 4470 - end: 4475 + start: 9630 + end: 9639 + - file_id: 0 + span: + start: 10898 + end: 10907 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 3873 - end: 3951 - locals: - - name: - inner: 86 - span: - start: 3847 - end: 3852 - ty: 95 - mut_span: ~ - accesses: - - span: - start: 3938 - end: 3943 - kind: Read - inferred_type: 93 - expected_type: 93 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - StructInit: - struct_index: 0 - fields: - - kind: - Binary: - operator: - inner: Mul - span: - start: 3936 - end: 3937 - left: - kind: - GenericCall: - id: 6 - type_args: - - 162 - - 92 - arguments: [] - ty: 95 - span: - start: 3921 - end: 3935 - right: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 95 - span: - start: 3938 - end: 3943 - ty: 95 - span: - start: 3921 - end: 3943 - - kind: - GenericCall: - id: 7 - type_args: - - 162 - - 92 - arguments: [] - ty: 95 - span: - start: 3898 - end: 3913 - ty: 93 - span: - start: 3883 - end: 3945 - ty: 93 - span: - start: 3873 - end: 3951 - - id: 76 + - Intrinsic + body: ~ + - id: 90 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ + parent: ~ + pub_span: + start: 4423 + end: 4426 type_params: [] - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 109 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 88 + inner: 127 span: - start: 4007 - end: 4014 + start: 4430 + end: 4440 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4015 - end: 4019 + start: 4441 + end: 4442 ty: - inner: 99 + inner: 11 span: - start: 4021 - end: 4041 + start: 4444 + end: 4447 - mut_span: ~ name: - inner: 89 + inner: 101 span: - start: 4043 - end: 4049 + start: 4449 + end: 4450 ty: - inner: 107 + inner: 11 span: - start: 4051 - end: 4068 + start: 4452 + end: 4455 result: - inner: 108 + inner: 11 span: - start: 4073 - end: 4091 + start: 4460 + end: 4463 accesses: - file_id: 0 span: - start: 4210 - end: 4217 + start: 7141 + end: 7151 - file_id: 0 span: - start: 4454 - end: 4461 - attributes: [] + start: 8442 + end: 8452 + - file_id: 0 + span: + start: 13997 + end: 14007 + - file_id: 0 + span: + start: 15447 + end: 15457 + - file_id: 0 + span: + start: 17011 + end: 17021 + - file_id: 0 + span: + start: 18483 + end: 18493 + - file_id: 0 + span: + start: 19290 + end: 19300 + attributes: + - Intrinsic body: ~ - - id: 77 + - id: 91 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4121 - end: 4122 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4159 - end: 4160 - - file_id: 0 - span: - start: 4181 - end: 4182 - - file_id: 0 - span: - start: 4256 - end: 4257 - - file_id: 0 - span: - start: 4231 - end: 4232 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 102 + parent: ~ + pub_span: + start: 4479 + end: 4482 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 90 + inner: 128 span: - start: 4115 - end: 4120 + start: 4486 + end: 4496 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4124 - end: 4128 + start: 4497 + end: 4498 ty: - inner: 99 + inner: 13 span: - start: 4130 - end: 4150 + start: 4500 + end: 4503 - mut_span: ~ name: - inner: 31 + inner: 101 span: - start: 4152 - end: 4157 + start: 4505 + end: 4506 ty: - inner: 100 + inner: 13 span: - start: 4159 - end: 4160 + start: 4508 + end: 4511 result: - inner: 101 + inner: 13 span: - start: 4165 - end: 4182 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4183 - end: 4299 - locals: - - name: - inner: 80 - span: - start: 4124 - end: 4128 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4205 - end: 4209 - kind: Read - - name: - inner: 31 - span: - start: 4152 - end: 4157 - ty: 100 - mut_span: ~ - accesses: - - span: - start: 4275 - end: 4280 - kind: Read - - name: - inner: 91 - span: - start: 4199 - end: 4202 - ty: 101 - mut_span: ~ - accesses: - - span: - start: 4267 - end: 4270 - kind: Read - - span: - start: 4290 - end: 4293 - kind: Read - inferred_type: 101 - expected_type: 101 - block: - kind: - Block: - scope_index: 0 - expressions: - - kind: - LocalDeclaration: - name: - inner: 91 - span: - start: 4199 - end: 4202 - scope_index: 0 - local_index: 2 - value: - kind: - GenericMethodCall: - id: 76 - type_args: - - 97 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 99 - span: - start: 4205 - end: 4209 - - kind: - GenericCall: - id: 72 - type_args: - - 98 - - 100 - arguments: [] - ty: 107 - span: - start: 4218 - end: 4235 - ty: 101 - span: - start: 4205 - end: 4236 - ty: 2 - span: - start: 4193 - end: 4257 - - kind: - Store: - target: - kind: - Deref: - pointer: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 101 - span: - start: 4267 - end: 4270 - ty: 100 - memory: 98 - mutable: true - span: - start: 4267 - end: 4272 - value: - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 100 - span: - start: 4275 - end: 4280 - ty: 2 - span: - start: 4267 - end: 4280 - result: - kind: - Local: - scope_index: 0 - local_index: 2 - ty: 101 - span: - start: 4290 - end: 4293 - ty: 101 + start: 4516 + end: 4519 + accesses: + - file_id: 0 span: - start: 4183 - end: 4299 - - id: 78 + start: 9739 + end: 9749 + - file_id: 0 + span: + start: 11040 + end: 11050 + attributes: + - Intrinsic + body: ~ + - id: 92 file_id: 0 namespace: 0 - parent: - Trait: 3 - pub_span: ~ - type_params: - - name: - inner: 13 - span: - start: 4334 - end: 4335 - bounds: - traits: [] - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4407 - end: 4408 - - file_id: 0 - span: - start: 4502 - end: 4503 - - file_id: 0 - span: - start: 4478 - end: 4479 - type_param_parent: - Trait: 3 - inherited_type_param_count: 1 - signature_index: 106 + parent: ~ + pub_span: + start: 4535 + end: 4538 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 92 + inner: 129 span: - start: 4322 - end: 4333 + start: 4542 + end: 4549 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 4337 - end: 4341 + start: 4550 + end: 4551 ty: - inner: 99 + inner: 11 span: - start: 4343 - end: 4363 + start: 4553 + end: 4556 - mut_span: ~ name: - inner: 18 + inner: 101 span: - start: 4365 - end: 4368 + start: 4558 + end: 4559 ty: - inner: 103 + inner: 11 span: - start: 4370 - end: 4385 + start: 4561 + end: 4564 result: - inner: 105 + inner: 11 span: - start: 4390 - end: 4408 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 4409 - end: 4542 - locals: - - name: - inner: 80 - span: - start: 4337 - end: 4341 - ty: 99 - mut_span: ~ - accesses: - - span: - start: 4449 - end: 4453 - kind: Read - - name: - inner: 18 - span: - start: 4365 - end: 4368 - ty: 103 - mut_span: ~ - accesses: - - span: - start: 4481 - end: 4484 - kind: Read - - span: - start: 4517 - end: 4520 - kind: Read - inferred_type: 105 - expected_type: 105 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 5 - type_args: - - 98 - - 104 - arguments: - - kind: - GenericMethodCall: - id: 76 - type_args: - - 97 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 99 - span: - start: 4449 - end: 4453 - - kind: - GenericCall: - id: 73 - type_args: - - 98 - - 104 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 103 - span: - start: 4481 - end: 4484 - ty: 107 - span: - start: 4462 - end: 4485 - ty: 168 - span: - start: 4449 - end: 4486 - - kind: - Local: - scope_index: 0 - local_index: 1 - ty: 103 - span: - start: 4517 - end: 4520 - ty: 105 - span: - start: 4419 - end: 4531 - ty: 105 + start: 4569 + end: 4572 + accesses: + - file_id: 0 span: - start: 4409 - end: 4542 - - id: 88 + start: 7245 + end: 7252 + - file_id: 0 + span: + start: 8579 + end: 8586 + - file_id: 0 + span: + start: 14132 + end: 14139 + - file_id: 0 + span: + start: 15582 + end: 15589 + - file_id: 0 + span: + start: 17148 + end: 17155 + - file_id: 0 + span: + start: 18620 + end: 18627 + attributes: + - Intrinsic + body: ~ + - id: 93 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5664 - end: 5667 + start: 4588 + end: 4591 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 151 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 99 name: - inner: 18 + inner: 130 span: - start: 5671 - end: 5674 + start: 4595 + end: 4602 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4603 + end: 4604 + ty: + inner: 13 + span: + start: 4606 + end: 4609 + - mut_span: ~ + name: + inner: 101 span: - start: 5675 - end: 5679 + start: 4611 + end: 4612 ty: - inner: 149 + inner: 13 span: - start: 5675 - end: 5679 + start: 4614 + end: 4617 result: - inner: 150 + inner: 13 span: - start: 5684 - end: 5693 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5694 - end: 5725 - locals: - - name: - inner: 80 - span: - start: 5675 - end: 5679 - ty: 149 - mut_span: ~ - accesses: - - span: - start: 5714 - end: 5718 - kind: Read - inferred_type: 150 - expected_type: 150 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 3 - type_args: - - 147 - - 148 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 149 - span: - start: 5714 - end: 5718 - ty: 150 - span: - start: 5704 - end: 5719 - ty: 150 + start: 4622 + end: 4625 + accesses: + - file_id: 0 span: - start: 5694 - end: 5725 - - id: 89 + start: 9843 + end: 9850 + - file_id: 0 + span: + start: 11177 + end: 11184 + attributes: + - Intrinsic + body: ~ + - id: 94 file_id: 0 namespace: 0 - parent: - GenericImpl: 3 + parent: ~ pub_span: - start: 5745 - end: 5748 + start: 4641 + end: 4644 type_params: [] - type_param_parent: - ImplBlock: 3 - inherited_type_param_count: 2 - signature_index: 153 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 98 name: - inner: 91 + inner: 131 span: - start: 5752 - end: 5755 + start: 4648 + end: 4655 params: - mut_span: ~ name: - inner: 80 + inner: 100 + span: + start: 4656 + end: 4657 + ty: + inner: 11 + span: + start: 4659 + end: 4662 + - mut_span: ~ + name: + inner: 101 span: - start: 5756 - end: 5760 + start: 4664 + end: 4665 ty: - inner: 149 + inner: 11 span: - start: 5756 - end: 5760 + start: 4667 + end: 4670 result: - inner: 152 + inner: 11 span: - start: 5765 - end: 5772 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5773 - end: 5804 - locals: - - name: - inner: 80 - span: - start: 5756 - end: 5760 - ty: 149 - mut_span: ~ - accesses: - - span: - start: 5793 - end: 5797 - kind: Read - inferred_type: 152 - expected_type: 152 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - GenericCall: - id: 4 - type_args: - - 147 - - 148 - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 149 - span: - start: 5793 - end: 5797 - ty: 152 - span: - start: 5783 - end: 5798 - ty: 152 + start: 4675 + end: 4678 + accesses: + - file_id: 0 span: - start: 5773 - end: 5804 - - id: 92 + start: 7346 + end: 7353 + - file_id: 0 + span: + start: 14264 + end: 14271 + - file_id: 0 + span: + start: 17282 + end: 17289 + attributes: + - Intrinsic + body: ~ + - id: 95 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 5880 - end: 5883 + start: 4694 + end: 4697 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 102 name: - inner: 104 + inner: 132 span: - start: 5887 - end: 5905 + start: 4701 + end: 4708 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 5906 - end: 5910 + start: 4709 + end: 4710 ty: - inner: 17 + inner: 10 + span: + start: 4712 + end: 4715 + - mut_span: ~ + name: + inner: 101 + span: + start: 4717 + end: 4718 + ty: + inner: 10 span: - start: 5906 - end: 5910 + start: 4720 + end: 4723 result: - inner: 17 + inner: 10 span: - start: 5915 - end: 5919 - accesses: [] + start: 4728 + end: 4731 + accesses: + - file_id: 0 + span: + start: 8705 + end: 8712 + - file_id: 0 + span: + start: 15714 + end: 15721 + - file_id: 0 + span: + start: 18754 + end: 18761 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 5920 - end: 6063 - locals: - - name: - inner: 80 - span: - start: 5906 - end: 5910 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 5933 - end: 5937 - kind: Read - - span: - start: 5975 - end: 5979 - kind: Read - - span: - start: 6043 - end: 6047 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 5959 - end: 6023 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6029 - end: 6057 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 5933 - end: 5937 - id: 96 - ty: 16 - span: - start: 5933 - end: 5958 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 5987 - end: 5988 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 5975 - end: 5979 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 5989 - end: 6004 - ty: 17 - span: - start: 5974 - end: 6004 - ty: 17 - span: - start: 5959 - end: 6023 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6043 - end: 6047 - ty: 17 - span: - start: 6029 - end: 6057 - ty: 17 - span: - start: 5930 - end: 6057 - ty: 17 - span: - start: 5920 - end: 6063 - - id: 93 + - Intrinsic + body: ~ + - id: 96 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6083 - end: 6086 + start: 4747 + end: 4750 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 154 + signature_index: 99 name: - inner: 106 + inner: 133 span: - start: 6090 - end: 6108 + start: 4754 + end: 4761 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6109 - end: 6113 + start: 4762 + end: 4763 ty: - inner: 17 + inner: 13 + span: + start: 4765 + end: 4768 + - mut_span: ~ + name: + inner: 101 span: - start: 6109 - end: 6113 + start: 4770 + end: 4771 + ty: + inner: 13 + span: + start: 4773 + end: 4776 result: - inner: 17 + inner: 13 span: - start: 6118 - end: 6122 - accesses: [] - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6123 - end: 6266 - locals: - - name: - inner: 80 - span: - start: 6109 - end: 6113 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6136 - end: 6140 - kind: Read - - span: - start: 6178 - end: 6182 - kind: Read - - span: - start: 6246 - end: 6250 - kind: Read - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6162 - end: 6226 - locals: [] - inferred_type: 17 - expected_type: 17 - - kind: Block - label: ~ - parent: 0 - span: - start: 6232 - end: 6260 - locals: [] - inferred_type: 17 - expected_type: 17 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - IfElse: - condition: - kind: - MethodCall: - arguments: - - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6136 - end: 6140 - id: 95 - ty: 16 - span: - start: 6136 - end: 6161 - then_block: - kind: - Block: - scope_index: 1 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitXor - span: - start: 6190 - end: 6191 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 6 - span: - start: 6178 - end: 6182 - right: - kind: - Const: - id: 91 - ty: 6 - span: - start: 6192 - end: 6207 - ty: 17 - span: - start: 6177 - end: 6207 - ty: 17 - span: - start: 6162 - end: 6226 - else_block: - kind: - Block: - scope_index: 2 - expressions: [] - result: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6246 - end: 6250 - ty: 17 - span: - start: 6232 - end: 6260 - ty: 17 - span: - start: 6133 - end: 6260 - ty: 17 + start: 4781 + end: 4784 + accesses: + - file_id: 0 span: - start: 6123 - end: 6266 - - id: 94 + start: 9944 + end: 9951 + attributes: + - Intrinsic + body: ~ + - id: 97 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6286 - end: 6289 + start: 4800 + end: 4803 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 103 name: - inner: 108 + inner: 134 span: - start: 6293 - end: 6301 + start: 4807 + end: 4814 params: - mut_span: ~ name: - inner: 80 + inner: 100 span: - start: 6302 - end: 6306 + start: 4815 + end: 4816 ty: - inner: 17 + inner: 12 + span: + start: 4818 + end: 4821 + - mut_span: ~ + name: + inner: 101 span: - start: 6302 - end: 6306 + start: 4823 + end: 4824 + ty: + inner: 12 + span: + start: 4826 + end: 4829 result: - inner: 16 + inner: 12 span: - start: 6311 - end: 6315 - accesses: [] + start: 4834 + end: 4837 + accesses: + - file_id: 0 + span: + start: 11303 + end: 11310 attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6316 - end: 6353 - locals: - - name: - inner: 80 - span: - start: 6302 - end: 6306 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6327 - end: 6331 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6340 - end: 6342 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 6327 - end: 6331 - right: - kind: - Int: - value: 127 - ty: 10 - span: - start: 6343 - end: 6347 - ty: 16 - span: - start: 6326 - end: 6347 - ty: 16 - span: - start: 6316 - end: 6353 - - id: 95 + - Intrinsic + body: ~ + - id: 98 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6373 - end: 6376 + start: 4853 + end: 4856 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 96 name: - inner: 107 + inner: 135 span: - start: 6380 - end: 6398 + start: 4860 + end: 4870 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6399 - end: 6403 + start: 4871 + end: 4876 ty: - inner: 17 + inner: 11 span: - start: 6399 - end: 6403 + start: 4878 + end: 4881 result: - inner: 16 + inner: 11 span: - start: 6408 - end: 6412 + start: 4886 + end: 4889 accesses: - file_id: 0 span: - start: 6141 - end: 6159 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6413 - end: 6455 - locals: - - name: - inner: 80 - span: - start: 6399 - end: 6403 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6423 - end: 6427 - kind: Read - - span: - start: 6438 - end: 6442 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6435 - end: 6437 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6428 - end: 6430 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6423 - end: 6427 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6431 - end: 6434 - ty: 16 - span: - start: 6423 - end: 6434 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6443 - end: 6445 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6438 - end: 6442 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6446 - end: 6449 - ty: 16 - span: - start: 6438 - end: 6449 - ty: 16 - span: - start: 6423 - end: 6449 - ty: 16 + start: 7442 + end: 7452 + - file_id: 0 span: - start: 6413 - end: 6455 - - id: 96 + start: 8809 + end: 8819 + - file_id: 0 + span: + start: 14383 + end: 14393 + - file_id: 0 + span: + start: 15833 + end: 15843 + - file_id: 0 + span: + start: 17403 + end: 17413 + - file_id: 0 + span: + start: 18875 + end: 18885 + attributes: + - Intrinsic + body: ~ + - id: 99 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6475 - end: 6478 + start: 4905 + end: 4908 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 97 name: - inner: 105 + inner: 136 span: - start: 6482 - end: 6500 + start: 4912 + end: 4922 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6501 - end: 6505 + start: 4923 + end: 4928 ty: - inner: 17 + inner: 13 span: - start: 6501 - end: 6505 + start: 4930 + end: 4933 result: - inner: 16 + inner: 13 span: - start: 6510 - end: 6514 + start: 4938 + end: 4941 accesses: - file_id: 0 span: - start: 5938 - end: 5956 - attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6515 - end: 6557 - locals: - - name: - inner: 80 - span: - start: 6501 - end: 6505 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6525 - end: 6529 - kind: Read - - span: - start: 6540 - end: 6544 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6537 - end: 6539 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6530 - end: 6532 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6525 - end: 6529 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6533 - end: 6536 - ty: 16 - span: - start: 6525 - end: 6536 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6545 - end: 6547 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6540 - end: 6544 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6548 - end: 6551 - ty: 16 - span: - start: 6540 - end: 6551 - ty: 16 - span: - start: 6525 - end: 6551 - ty: 16 + start: 10040 + end: 10050 + - file_id: 0 span: - start: 6515 - end: 6557 - - id: 97 + start: 11407 + end: 11417 + attributes: + - Intrinsic + body: ~ + - id: 100 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6577 - end: 6580 + start: 4957 + end: 4960 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 104 name: - inner: 109 + inner: 137 span: - start: 6584 - end: 6603 + start: 4964 + end: 4979 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6604 - end: 6608 + start: 4980 + end: 4985 ty: - inner: 17 + inner: 11 span: - start: 6604 - end: 6608 + start: 4987 + end: 4990 result: - inner: 16 + inner: 14 span: - start: 6613 - end: 6617 + start: 4995 + end: 4998 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6618 - end: 6693 - locals: - - name: - inner: 80 - span: - start: 6604 - end: 6608 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6629 - end: 6633 - kind: Read - - span: - start: 6644 - end: 6648 - kind: Read - - span: - start: 6660 - end: 6664 - kind: Read - - span: - start: 6675 - end: 6679 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6657 - end: 6658 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6641 - end: 6643 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6634 - end: 6636 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6629 - end: 6633 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6637 - end: 6640 - ty: 16 - span: - start: 6629 - end: 6640 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6649 - end: 6651 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6644 - end: 6648 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6652 - end: 6655 - ty: 16 - span: - start: 6644 - end: 6655 - ty: 16 - span: - start: 6629 - end: 6655 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6672 - end: 6674 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6665 - end: 6667 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6660 - end: 6664 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6668 - end: 6671 - ty: 16 - span: - start: 6660 - end: 6671 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6680 - end: 6682 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6675 - end: 6679 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6683 - end: 6686 - ty: 16 - span: - start: 6675 - end: 6686 - ty: 16 - span: - start: 6660 - end: 6686 - ty: 16 - span: - start: 6628 - end: 6687 - ty: 16 - span: - start: 6618 - end: 6693 - - id: 98 + - Intrinsic + body: ~ + - id: 101 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6713 - end: 6716 + start: 5014 + end: 5017 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 105 name: - inner: 110 + inner: 138 span: - start: 6720 - end: 6734 + start: 5021 + end: 5036 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6735 - end: 6739 + start: 5037 + end: 5042 ty: - inner: 17 + inner: 10 span: - start: 6735 - end: 6739 + start: 5044 + end: 5047 result: - inner: 16 + inner: 14 span: - start: 6744 - end: 6748 + start: 5052 + end: 5055 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6749 - end: 6791 - locals: - - name: - inner: 80 - span: - start: 6735 - end: 6739 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6759 - end: 6763 - kind: Read - - span: - start: 6774 - end: 6778 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 6771 - end: 6773 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6764 - end: 6766 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6759 - end: 6763 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6767 - end: 6770 - ty: 16 - span: - start: 6759 - end: 6770 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6779 - end: 6781 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6774 - end: 6778 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6782 - end: 6785 - ty: 16 - span: - start: 6774 - end: 6785 - ty: 16 - span: - start: 6759 - end: 6785 - ty: 16 - span: - start: 6749 - end: 6791 - - id: 99 + - Intrinsic + body: ~ + - id: 102 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 6811 - end: 6814 + start: 5071 + end: 5074 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 106 name: - inner: 111 + inner: 139 span: - start: 6818 - end: 6839 + start: 5078 + end: 5093 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 6840 - end: 6844 + start: 5094 + end: 5099 ty: - inner: 17 + inner: 13 span: - start: 6840 - end: 6844 + start: 5101 + end: 5104 result: - inner: 16 + inner: 14 span: - start: 6849 - end: 6853 + start: 5109 + end: 5112 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 6854 - end: 6984 - locals: - - name: - inner: 80 - span: - start: 6840 - end: 6844 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 6865 - end: 6869 - kind: Read - - span: - start: 6880 - end: 6884 - kind: Read - - span: - start: 6908 - end: 6912 - kind: Read - - span: - start: 6923 - end: 6927 - kind: Read - - span: - start: 6951 - end: 6955 - kind: Read - - span: - start: 6966 - end: 6970 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6948 - end: 6949 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 6905 - end: 6906 - left: - kind: - Binary: - operator: - inner: And - span: - start: 6877 - end: 6879 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6870 - end: 6872 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6865 - end: 6869 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 6873 - end: 6876 - ty: 16 - span: - start: 6865 - end: 6876 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6885 - end: 6887 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6880 - end: 6884 - right: - kind: - Char: - value: Z - ty: 17 - span: - start: 6888 - end: 6891 - ty: 16 - span: - start: 6880 - end: 6891 - ty: 16 - span: - start: 6865 - end: 6891 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6920 - end: 6922 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6913 - end: 6915 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6908 - end: 6912 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 6916 - end: 6919 - ty: 16 - span: - start: 6908 - end: 6919 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6928 - end: 6930 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6923 - end: 6927 - right: - kind: - Char: - value: z - ty: 17 - span: - start: 6931 - end: 6934 - ty: 16 - span: - start: 6923 - end: 6934 - ty: 16 - span: - start: 6908 - end: 6934 - ty: 16 - span: - start: 6864 - end: 6935 - right: - kind: - Binary: - operator: - inner: And - span: - start: 6963 - end: 6965 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 6956 - end: 6958 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6951 - end: 6955 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 6959 - end: 6962 - ty: 16 - span: - start: 6951 - end: 6962 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 6971 - end: 6973 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 6966 - end: 6970 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 6974 - end: 6977 - ty: 16 - span: - start: 6966 - end: 6977 - ty: 16 - span: - start: 6951 - end: 6977 - ty: 16 - span: - start: 6864 - end: 6978 - ty: 16 - span: - start: 6854 - end: 6984 - - id: 100 + - Intrinsic + body: ~ + - id: 103 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7004 - end: 7007 + start: 5128 + end: 5131 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 107 name: - inner: 112 + inner: 140 span: - start: 7011 - end: 7030 + start: 5135 + end: 5150 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7031 - end: 7035 + start: 5151 + end: 5156 ty: - inner: 17 + inner: 12 span: - start: 7031 - end: 7035 + start: 5158 + end: 5161 result: - inner: 16 + inner: 14 span: - start: 7040 - end: 7044 + start: 5166 + end: 5169 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7045 - end: 7186 - locals: - - name: - inner: 80 - span: - start: 7031 - end: 7035 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7055 - end: 7059 - kind: Read - - span: - start: 7083 - end: 7087 - kind: Read - - span: - start: 7111 - end: 7115 - kind: Read - - span: - start: 7141 - end: 7145 - kind: Read - - span: - start: 7169 - end: 7173 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7166 - end: 7168 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7138 - end: 7140 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7108 - end: 7110 - left: - kind: - Binary: - operator: - inner: Or - span: - start: 7080 - end: 7082 - left: - kind: - Binary: - operator: - inner: Eq - span: - start: 7060 - end: 7062 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7055 - end: 7059 - right: - kind: - Char: - value: "\t" - ty: 17 - span: - start: 7063 - end: 7067 - ty: 16 - span: - start: 7055 - end: 7067 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7088 - end: 7090 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7083 - end: 7087 - right: - kind: - Char: - value: "\n" - ty: 17 - span: - start: 7091 - end: 7095 - ty: 16 - span: - start: 7083 - end: 7095 - ty: 16 - span: - start: 7055 - end: 7095 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7116 - end: 7118 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7111 - end: 7115 - right: - kind: - Char: - value: - ty: 17 - span: - start: 7119 - end: 7125 - ty: 16 - span: - start: 7111 - end: 7125 - ty: 16 - span: - start: 7055 - end: 7125 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7146 - end: 7148 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7141 - end: 7145 - right: - kind: - Char: - value: "\r" - ty: 17 - span: - start: 7149 - end: 7153 - ty: 16 - span: - start: 7141 - end: 7153 - ty: 16 - span: - start: 7055 - end: 7153 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7174 - end: 7176 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7169 - end: 7173 - right: - kind: - Char: - value: " " - ty: 17 - span: - start: 7177 - end: 7180 - ty: 16 - span: - start: 7169 - end: 7180 - ty: 16 - span: - start: 7055 - end: 7180 - ty: 16 - span: - start: 7045 - end: 7186 - - id: 101 + - Intrinsic + body: ~ + - id: 104 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7206 - end: 7209 + start: 5185 + end: 5188 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 108 name: - inner: 113 + inner: 141 span: - start: 7213 - end: 7229 + start: 5192 + end: 5207 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7230 - end: 7234 + start: 5208 + end: 5213 ty: - inner: 17 + inner: 11 span: - start: 7230 - end: 7234 + start: 5215 + end: 5218 result: - inner: 16 + inner: 15 span: - start: 7239 - end: 7243 + start: 5223 + end: 5226 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7244 - end: 7299 - locals: - - name: - inner: 80 - span: - start: 7230 - end: 7234 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7255 - end: 7259 - kind: Read - - span: - start: 7279 - end: 7283 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: Or - span: - start: 7276 - end: 7278 - left: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7268 - end: 7270 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 10 - span: - start: 7255 - end: 7259 - right: - kind: - Int: - value: 31 - ty: 10 - span: - start: 7271 - end: 7275 - ty: 16 - span: - start: 7254 - end: 7275 - right: - kind: - Binary: - operator: - inner: Eq - span: - start: 7284 - end: 7286 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7279 - end: 7283 - right: - kind: - Char: - value:  - ty: 17 - span: - start: 7287 - end: 7293 - ty: 16 - span: - start: 7279 - end: 7293 - ty: 16 - span: - start: 7254 - end: 7293 - ty: 16 - span: - start: 7244 - end: 7299 - - id: 102 + - Intrinsic + body: ~ + - id: 105 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7319 - end: 7322 + start: 5242 + end: 5245 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 109 name: - inner: 114 + inner: 142 span: - start: 7326 - end: 7343 + start: 5249 + end: 5264 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7344 - end: 7348 + start: 5265 + end: 5270 ty: - inner: 17 + inner: 10 span: - start: 7344 - end: 7348 + start: 5272 + end: 5275 result: - inner: 16 + inner: 15 span: - start: 7353 - end: 7357 + start: 5280 + end: 5283 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7358 - end: 7488 - locals: - - name: - inner: 80 - span: - start: 7344 - end: 7348 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7369 - end: 7373 - kind: Read - - span: - start: 7384 - end: 7388 - kind: Read - - span: - start: 7412 - end: 7416 - kind: Read - - span: - start: 7427 - end: 7431 - kind: Read - - span: - start: 7455 - end: 7459 - kind: Read - - span: - start: 7470 - end: 7474 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7452 - end: 7453 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7409 - end: 7410 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7381 - end: 7383 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7374 - end: 7376 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7369 - end: 7373 - right: - kind: - Char: - value: "0" - ty: 17 - span: - start: 7377 - end: 7380 - ty: 16 - span: - start: 7369 - end: 7380 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7389 - end: 7391 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7384 - end: 7388 - right: - kind: - Char: - value: "9" - ty: 17 - span: - start: 7392 - end: 7395 - ty: 16 - span: - start: 7384 - end: 7395 - ty: 16 - span: - start: 7369 - end: 7395 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7424 - end: 7426 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7417 - end: 7419 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7412 - end: 7416 - right: - kind: - Char: - value: A - ty: 17 - span: - start: 7420 - end: 7423 - ty: 16 - span: - start: 7412 - end: 7423 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7432 - end: 7434 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7427 - end: 7431 - right: - kind: - Char: - value: F - ty: 17 - span: - start: 7435 - end: 7438 - ty: 16 - span: - start: 7427 - end: 7438 - ty: 16 - span: - start: 7412 - end: 7438 - ty: 16 - span: - start: 7368 - end: 7439 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7467 - end: 7469 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7460 - end: 7462 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7455 - end: 7459 - right: - kind: - Char: - value: a - ty: 17 - span: - start: 7463 - end: 7466 - ty: 16 - span: - start: 7455 - end: 7466 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7475 - end: 7477 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7470 - end: 7474 - right: - kind: - Char: - value: f - ty: 17 - span: - start: 7478 - end: 7481 - ty: 16 - span: - start: 7470 - end: 7481 - ty: 16 - span: - start: 7455 - end: 7481 - ty: 16 - span: - start: 7368 - end: 7482 - ty: 16 - span: - start: 7358 - end: 7488 - - id: 103 + - Intrinsic + body: ~ + - id: 106 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7508 - end: 7511 + start: 5299 + end: 5302 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 110 name: - inner: 115 + inner: 143 span: - start: 7515 - end: 7535 + start: 5306 + end: 5321 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7536 - end: 7540 + start: 5322 + end: 5327 ty: - inner: 17 + inner: 13 span: - start: 7536 - end: 7540 + start: 5329 + end: 5332 result: - inner: 16 + inner: 15 span: - start: 7545 - end: 7549 + start: 5337 + end: 5340 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7550 - end: 7723 - locals: - - name: - inner: 80 - span: - start: 7536 - end: 7540 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7561 - end: 7565 - kind: Read - - span: - start: 7576 - end: 7580 - kind: Read - - span: - start: 7604 - end: 7608 - kind: Read - - span: - start: 7619 - end: 7623 - kind: Read - - span: - start: 7647 - end: 7651 - kind: Read - - span: - start: 7662 - end: 7666 - kind: Read - - span: - start: 7690 - end: 7694 - kind: Read - - span: - start: 7705 - end: 7709 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7687 - end: 7688 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7644 - end: 7645 - left: - kind: - Binary: - operator: - inner: BitOr - span: - start: 7601 - end: 7602 - left: - kind: - Binary: - operator: - inner: And - span: - start: 7573 - end: 7575 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7566 - end: 7568 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7561 - end: 7565 - right: - kind: - Char: - value: "!" - ty: 17 - span: - start: 7569 - end: 7572 - ty: 16 - span: - start: 7561 - end: 7572 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7581 - end: 7583 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7576 - end: 7580 - right: - kind: - Char: - value: / - ty: 17 - span: - start: 7584 - end: 7587 - ty: 16 - span: - start: 7576 - end: 7587 - ty: 16 - span: - start: 7561 - end: 7587 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7616 - end: 7618 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7609 - end: 7611 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7604 - end: 7608 - right: - kind: - Char: - value: ":" - ty: 17 - span: - start: 7612 - end: 7615 - ty: 16 - span: - start: 7604 - end: 7615 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7624 - end: 7626 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7619 - end: 7623 - right: - kind: - Char: - value: "@" - ty: 17 - span: - start: 7627 - end: 7630 - ty: 16 - span: - start: 7619 - end: 7630 - ty: 16 - span: - start: 7604 - end: 7630 - ty: 16 - span: - start: 7560 - end: 7631 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7659 - end: 7661 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7652 - end: 7654 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7647 - end: 7651 - right: - kind: - Char: - value: "[" - ty: 17 - span: - start: 7655 - end: 7658 - ty: 16 - span: - start: 7647 - end: 7658 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7667 - end: 7669 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7662 - end: 7666 - right: - kind: - Char: - value: "`" - ty: 17 - span: - start: 7670 - end: 7673 - ty: 16 - span: - start: 7662 - end: 7673 - ty: 16 - span: - start: 7647 - end: 7673 - ty: 16 - span: - start: 7560 - end: 7674 - right: - kind: - Binary: - operator: - inner: And - span: - start: 7702 - end: 7704 - left: - kind: - Binary: - operator: - inner: GreaterEq - span: - start: 7695 - end: 7697 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7690 - end: 7694 - right: - kind: - Char: - value: "{" - ty: 17 - span: - start: 7698 - end: 7701 - ty: 16 - span: - start: 7690 - end: 7701 - right: - kind: - Binary: - operator: - inner: LessEq - span: - start: 7710 - end: 7712 - left: - kind: - Local: - scope_index: 0 - local_index: 0 - ty: 17 - span: - start: 7705 - end: 7709 - right: - kind: - Char: - value: "~" - ty: 17 - span: - start: 7713 - end: 7716 - ty: 16 - span: - start: 7705 - end: 7716 - ty: 16 - span: - start: 7690 - end: 7716 - ty: 16 - span: - start: 7560 - end: 7717 - ty: 16 - span: - start: 7550 - end: 7723 - - id: 104 + - Intrinsic + body: ~ + - id: 107 file_id: 0 namespace: 0 - parent: - GenericImpl: 4 + parent: ~ pub_span: - start: 7743 - end: 7746 + start: 5356 + end: 5359 type_params: [] - type_param_parent: - ImplBlock: 4 + type_param_parent: ~ inherited_type_param_count: 0 - signature_index: 155 + signature_index: 111 name: - inner: 116 + inner: 144 span: - start: 7750 - end: 7766 + start: 5363 + end: 5378 params: - mut_span: ~ name: - inner: 80 + inner: 82 span: - start: 7767 - end: 7771 + start: 5379 + end: 5384 ty: - inner: 17 + inner: 12 span: - start: 7767 - end: 7771 + start: 5386 + end: 5389 result: - inner: 16 + inner: 15 span: - start: 7776 - end: 7780 + start: 5394 + end: 5397 accesses: [] attributes: - - Inline - body: - stack: - labels: [] - scopes: - - kind: Block - label: ~ - parent: ~ - span: - start: 7781 - end: 7823 - locals: - - name: - inner: 80 - span: - start: 7767 - end: 7771 - ty: 17 - mut_span: ~ - accesses: - - span: - start: 7791 - end: 7795 - kind: Read - - span: - start: 7806 - end: 7810 - kind: Read - inferred_type: 16 - expected_type: 16 - block: - kind: - Block: - scope_index: 0 - expressions: [] - result: - kind: - Binary: - operator: - inner: And - span: - start: 7803 - end: 7805 - left: - kind: + - Intrinsic + body: ~ + - id: 108 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5413 + end: 5416 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 112 + name: + inner: 145 + span: + start: 5420 + end: 5433 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5434 + end: 5439 + ty: + inner: 14 + span: + start: 5441 + end: 5444 + result: + inner: 11 + span: + start: 5449 + end: 5452 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 109 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5468 + end: 5471 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 113 + name: + inner: 146 + span: + start: 5475 + end: 5488 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5489 + end: 5494 + ty: + inner: 14 + span: + start: 5496 + end: 5499 + result: + inner: 10 + span: + start: 5504 + end: 5507 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 110 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5523 + end: 5526 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 114 + name: + inner: 147 + span: + start: 5530 + end: 5543 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5544 + end: 5549 + ty: + inner: 15 + span: + start: 5551 + end: 5554 + result: + inner: 11 + span: + start: 5559 + end: 5562 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 111 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5578 + end: 5581 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 115 + name: + inner: 148 + span: + start: 5585 + end: 5598 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5599 + end: 5604 + ty: + inner: 15 + span: + start: 5606 + end: 5609 + result: + inner: 10 + span: + start: 5614 + end: 5617 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 112 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5633 + end: 5636 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 116 + name: + inner: 149 + span: + start: 5640 + end: 5653 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5654 + end: 5659 + ty: + inner: 14 + span: + start: 5661 + end: 5664 + result: + inner: 13 + span: + start: 5669 + end: 5672 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 113 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5688 + end: 5691 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 117 + name: + inner: 150 + span: + start: 5695 + end: 5708 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5709 + end: 5714 + ty: + inner: 14 + span: + start: 5716 + end: 5719 + result: + inner: 12 + span: + start: 5724 + end: 5727 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 114 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5743 + end: 5746 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 118 + name: + inner: 151 + span: + start: 5750 + end: 5763 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5764 + end: 5769 + ty: + inner: 15 + span: + start: 5771 + end: 5774 + result: + inner: 13 + span: + start: 5779 + end: 5782 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 115 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5798 + end: 5801 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 119 + name: + inner: 152 + span: + start: 5805 + end: 5818 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5819 + end: 5824 + ty: + inner: 15 + span: + start: 5826 + end: 5829 + result: + inner: 12 + span: + start: 5834 + end: 5837 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 116 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5853 + end: 5856 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 120 + name: + inner: 153 + span: + start: 5860 + end: 5875 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5876 + end: 5881 + ty: + inner: 14 + span: + start: 5883 + end: 5886 + result: + inner: 15 + span: + start: 5891 + end: 5894 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 117 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 5910 + end: 5913 + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 121 + name: + inner: 154 + span: + start: 5917 + end: 5931 + params: + - mut_span: ~ + name: + inner: 82 + span: + start: 5932 + end: 5937 + ty: + inner: 15 + span: + start: 5939 + end: 5942 + result: + inner: 14 + span: + start: 5947 + end: 5950 + accesses: [] + attributes: + - Intrinsic + body: ~ + - id: 375 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21336 + end: 21339 + type_params: + - name: + inner: 57 + span: + start: 21348 + end: 21351 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21353 + end: 21359 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21369 + end: 21372 + - name: + inner: 65 + span: + start: 21361 + end: 21362 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21375 + end: 21376 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 156 + name: + inner: 178 + span: + start: 21343 + end: 21347 + params: [] + result: + inner: 155 + span: + start: 21369 + end: 21376 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21377 + end: 21399 + locals: [] + inferred_type: 155 + expected_type: 155 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 155 + span: + start: 21387 + end: 21388 + ty: 155 + span: + start: 21377 + end: 21399 + - id: 376 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21419 + end: 21422 + type_params: + - name: + inner: 57 + span: + start: 21435 + end: 21438 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21440 + end: 21446 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21456 + end: 21459 + - name: + inner: 65 + span: + start: 21448 + end: 21449 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21462 + end: 21463 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 160 + name: + inner: 179 + span: + start: 21426 + end: 21434 + params: [] + result: + inner: 159 + span: + start: 21456 + end: 21463 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21464 + end: 21486 + locals: [] + inferred_type: 159 + expected_type: 159 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Int: + value: 0 + ty: 159 + span: + start: 21474 + end: 21475 + ty: 159 + span: + start: 21464 + end: 21486 + - id: 377 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21506 + end: 21509 + type_params: + - name: + inner: 57 + span: + start: 21521 + end: 21524 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21526 + end: 21532 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21542 + end: 21545 + - file_id: 0 + span: + start: 21576 + end: 21579 + - name: + inner: 65 + span: + start: 21534 + end: 21535 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21548 + end: 21549 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 164 + name: + inner: 180 + span: + start: 21513 + end: 21520 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: + inner: 163 + span: + start: 21542 + end: 21549 + result: + inner: 16 + span: + start: 21554 + end: 21558 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21559 + end: 21596 + locals: + - name: + inner: 176 + span: + start: 21537 + end: 21540 + ty: 163 + mut_span: ~ + accesses: + - span: + start: 21569 + end: 21572 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Eq + span: + start: 21586 + end: 21588 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 259 + span: + start: 21569 + end: 21572 + right: + kind: + Int: + value: 0 + ty: 259 + span: + start: 21589 + end: 21590 + ty: 16 + span: + start: 21569 + end: 21590 + ty: 16 + span: + start: 21559 + end: 21596 + - id: 378 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21616 + end: 21619 + type_params: + - name: + inner: 57 + span: + start: 21632 + end: 21635 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21637 + end: 21643 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21653 + end: 21656 + - file_id: 0 + span: + start: 21665 + end: 21668 + - name: + inner: 65 + span: + start: 21645 + end: 21646 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21659 + end: 21660 + - file_id: 0 + span: + start: 21671 + end: 21672 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 169 + name: + inner: 181 + span: + start: 21623 + end: 21631 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: + inner: 167 + span: + start: 21653 + end: 21660 + result: + inner: 168 + span: + start: 21665 + end: 21672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21673 + end: 21697 + locals: + - name: + inner: 176 + span: + start: 21648 + end: 21651 + ty: 167 + mut_span: ~ + accesses: + - span: + start: 21683 + end: 21686 + kind: Read + inferred_type: 168 + expected_type: 168 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 168 + span: + start: 21683 + end: 21686 + ty: 168 + span: + start: 21673 + end: 21697 + - id: 379 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21717 + end: 21720 + type_params: + - name: + inner: 57 + span: + start: 21728 + end: 21731 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21733 + end: 21739 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21749 + end: 21752 + - file_id: 0 + span: + start: 21765 + end: 21768 + - file_id: 0 + span: + start: 21779 + end: 21782 + - file_id: 0 + span: + start: 21805 + end: 21808 + - file_id: 0 + span: + start: 21838 + end: 21841 + - name: + inner: 65 + span: + start: 21741 + end: 21742 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21755 + end: 21756 + - file_id: 0 + span: + start: 21785 + end: 21786 + - file_id: 0 + span: + start: 21835 + end: 21836 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 174 + name: + inner: 18 + span: + start: 21724 + end: 21727 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: + inner: 172 + span: + start: 21749 + end: 21756 + - mut_span: ~ + name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: + inner: 173 + span: + start: 21765 + end: 21774 + result: + inner: 172 + span: + start: 21779 + end: 21786 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21787 + end: 21856 + locals: + - name: + inner: 176 + span: + start: 21744 + end: 21747 + ty: 172 + mut_span: ~ + accesses: + - span: + start: 21798 + end: 21801 + kind: Read + - name: + inner: 171 + span: + start: 21758 + end: 21763 + ty: 173 + mut_span: ~ + accesses: + - span: + start: 21817 + end: 21822 + kind: Read + inferred_type: 172 + expected_type: 172 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 21815 + end: 21816 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 173 + span: + start: 21798 + end: 21801 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21823 + end: 21824 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 173 + span: + start: 21817 + end: 21822 + right: + kind: + GenericCall: + id: 43 + type_args: + - 171 + - 170 + arguments: [] + ty: 173 + span: + start: 21825 + end: 21844 + ty: 173 + span: + start: 21817 + end: 21844 + ty: 172 + span: + start: 21798 + end: 21844 + ty: 172 + span: + start: 21787 + end: 21856 + - id: 380 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 21876 + end: 21879 + type_params: + - name: + inner: 57 + span: + start: 21887 + end: 21890 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 21892 + end: 21898 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21908 + end: 21911 + - file_id: 0 + span: + start: 21924 + end: 21927 + - file_id: 0 + span: + start: 21938 + end: 21941 + - file_id: 0 + span: + start: 21964 + end: 21967 + - file_id: 0 + span: + start: 21997 + end: 22000 + - name: + inner: 65 + span: + start: 21900 + end: 21901 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21914 + end: 21915 + - file_id: 0 + span: + start: 21944 + end: 21945 + - file_id: 0 + span: + start: 21994 + end: 21995 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 179 + name: + inner: 24 + span: + start: 21883 + end: 21886 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: + inner: 177 + span: + start: 21908 + end: 21915 + - mut_span: ~ + name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: + inner: 178 + span: + start: 21924 + end: 21933 + result: + inner: 177 + span: + start: 21938 + end: 21945 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21946 + end: 22015 + locals: + - name: + inner: 176 + span: + start: 21903 + end: 21906 + ty: 177 + mut_span: ~ + accesses: + - span: + start: 21957 + end: 21960 + kind: Read + - name: + inner: 171 + span: + start: 21917 + end: 21922 + ty: 178 + mut_span: ~ + accesses: + - span: + start: 21976 + end: 21981 + kind: Read + inferred_type: 177 + expected_type: 177 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 21974 + end: 21975 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 178 + span: + start: 21957 + end: 21960 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 21982 + end: 21983 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 178 + span: + start: 21976 + end: 21981 + right: + kind: + GenericCall: + id: 43 + type_args: + - 176 + - 175 + arguments: [] + ty: 178 + span: + start: 21984 + end: 22003 + ty: 178 + span: + start: 21976 + end: 22003 + ty: 177 + span: + start: 21957 + end: 22003 + ty: 177 + span: + start: 21946 + end: 22015 + - id: 381 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22035 + end: 22038 + type_params: + - name: + inner: 57 + span: + start: 22050 + end: 22053 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22055 + end: 22061 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22071 + end: 22074 + - file_id: 0 + span: + start: 22087 + end: 22090 + - file_id: 0 + span: + start: 22101 + end: 22104 + - file_id: 0 + span: + start: 22127 + end: 22130 + - file_id: 0 + span: + start: 22160 + end: 22163 + - name: + inner: 65 + span: + start: 22063 + end: 22064 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22077 + end: 22078 + - file_id: 0 + span: + start: 22107 + end: 22108 + - file_id: 0 + span: + start: 22157 + end: 22158 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 184 + name: + inner: 182 + span: + start: 22042 + end: 22049 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: + inner: 182 + span: + start: 22071 + end: 22078 + - mut_span: ~ + name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: + inner: 183 + span: + start: 22087 + end: 22096 + result: + inner: 182 + span: + start: 22101 + end: 22108 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22109 + end: 22178 + locals: + - name: + inner: 176 + span: + start: 22066 + end: 22069 + ty: 182 + mut_span: ~ + accesses: + - span: + start: 22120 + end: 22123 + kind: Read + - name: + inner: 171 + span: + start: 22080 + end: 22085 + ty: 183 + mut_span: ~ + accesses: + - span: + start: 22139 + end: 22144 + kind: Read + inferred_type: 182 + expected_type: 182 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Add + span: + start: 22137 + end: 22138 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 183 + span: + start: 22120 + end: 22123 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22145 + end: 22146 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 183 + span: + start: 22139 + end: 22144 + right: + kind: + GenericCall: + id: 43 + type_args: + - 181 + - 180 + arguments: [] + ty: 183 + span: + start: 22147 + end: 22166 + ty: 183 + span: + start: 22139 + end: 22166 + ty: 182 + span: + start: 22120 + end: 22166 + ty: 182 + span: + start: 22109 + end: 22178 + - id: 382 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22198 + end: 22201 + type_params: + - name: + inner: 57 + span: + start: 22213 + end: 22216 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22218 + end: 22224 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22234 + end: 22237 + - file_id: 0 + span: + start: 22250 + end: 22253 + - file_id: 0 + span: + start: 22264 + end: 22267 + - file_id: 0 + span: + start: 22290 + end: 22293 + - file_id: 0 + span: + start: 22323 + end: 22326 + - name: + inner: 65 + span: + start: 22226 + end: 22227 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22240 + end: 22241 + - file_id: 0 + span: + start: 22270 + end: 22271 + - file_id: 0 + span: + start: 22320 + end: 22321 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 189 + name: + inner: 183 + span: + start: 22205 + end: 22212 + params: + - mut_span: ~ + name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: + inner: 187 + span: + start: 22234 + end: 22241 + - mut_span: ~ + name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: + inner: 188 + span: + start: 22250 + end: 22259 + result: + inner: 187 + span: + start: 22264 + end: 22271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22272 + end: 22341 + locals: + - name: + inner: 176 + span: + start: 22229 + end: 22232 + ty: 187 + mut_span: ~ + accesses: + - span: + start: 22283 + end: 22286 + kind: Read + - name: + inner: 171 + span: + start: 22243 + end: 22248 + ty: 188 + mut_span: ~ + accesses: + - span: + start: 22302 + end: 22307 + kind: Read + inferred_type: 187 + expected_type: 187 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Sub + span: + start: 22300 + end: 22301 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 188 + span: + start: 22283 + end: 22286 + right: + kind: + Binary: + operator: + inner: Mul + span: + start: 22308 + end: 22309 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 188 + span: + start: 22302 + end: 22307 + right: + kind: + GenericCall: + id: 43 + type_args: + - 186 + - 185 + arguments: [] + ty: 188 + span: + start: 22310 + end: 22329 + ty: 188 + span: + start: 22302 + end: 22329 + ty: 187 + span: + start: 22283 + end: 22329 + ty: 187 + span: + start: 22272 + end: 22341 + - id: 383 + file_id: 0 + namespace: 1 + parent: ~ + pub_span: + start: 22361 + end: 22364 + type_params: + - name: + inner: 57 + span: + start: 22377 + end: 22380 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 22382 + end: 22388 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 22396 + end: 22399 + - file_id: 0 + span: + start: 22414 + end: 22417 + - file_id: 0 + span: + start: 22428 + end: 22431 + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 192 + name: + inner: 184 + span: + start: 22368 + end: 22376 + params: + - mut_span: ~ + name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: + inner: 191 + span: + start: 22396 + end: 22405 + - mut_span: ~ + name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: + inner: 191 + span: + start: 22414 + end: 22423 + result: + inner: 191 + span: + start: 22428 + end: 22437 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22438 + end: 22579 + locals: + - name: + inner: 185 + span: + start: 22390 + end: 22394 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22496 + end: 22500 + kind: Read + - span: + start: 22538 + end: 22542 + kind: Read + - name: + inner: 168 + span: + start: 22407 + end: 22412 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22461 + end: 22466 + kind: Read + - name: + inner: 186 + span: + start: 22454 + end: 22458 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22503 + end: 22507 + kind: Read + - span: + start: 22512 + end: 22516 + kind: Read + - name: + inner: 187 + span: + start: 22486 + end: 22492 + ty: 191 + mut_span: ~ + accesses: + - span: + start: 22529 + end: 22535 + kind: Read + - span: + start: 22567 + end: 22573 + kind: Read + inferred_type: 191 + expected_type: 191 + - kind: Block + label: ~ + parent: 0 + span: + start: 22543 + end: 22558 + locals: [] + inferred_type: 3 + expected_type: 1 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 186 + span: + start: 22454 + end: 22458 + scope_index: 0 + local_index: 2 + value: + kind: + Binary: + operator: + inner: Sub + span: + start: 22467 + end: 22468 + left: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 191 + span: + start: 22461 + end: 22466 + right: + kind: + Int: + value: 1 + ty: 191 + span: + start: 22469 + end: 22470 + ty: 191 + span: + start: 22461 + end: 22470 + ty: 2 + span: + start: 22448 + end: 22470 + - kind: + LocalDeclaration: + name: + inner: 187 + span: + start: 22486 + end: 22492 + scope_index: 0 + local_index: 3 + value: + kind: + Binary: + operator: + inner: BitAnd + span: + start: 22509 + end: 22510 + left: + kind: + Binary: + operator: + inner: Add + span: + start: 22501 + end: 22502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 191 + span: + start: 22496 + end: 22500 + right: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 191 + span: + start: 22503 + end: 22507 + ty: 191 + span: + start: 22496 + end: 22507 + right: + kind: + Unary: + operator: + inner: BitNot + span: + start: 22511 + end: 22512 + operand: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 191 + span: + start: 22512 + end: 22516 + ty: 191 + span: + start: 22511 + end: 22516 + ty: 191 + span: + start: 22495 + end: 22516 + ty: 2 + span: + start: 22480 + end: 22516 + - kind: + IfElse: + condition: + kind: + Binary: + operator: + inner: Less + span: + start: 22536 + end: 22537 + left: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 191 + span: + start: 22529 + end: 22535 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 191 + span: + start: 22538 + end: 22542 + ty: 16 + span: + start: 22529 + end: 22542 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: Unreachable + ty: 3 + span: + start: 22545 + end: 22556 + ty: 3 + span: + start: 22543 + end: 22558 + else_block: ~ + ty: 2 + span: + start: 22526 + end: 22558 + result: + kind: + Local: + scope_index: 0 + local_index: 3 + ty: 191 + span: + start: 22567 + end: 22573 + ty: 191 + span: + start: 22438 + end: 22579 + - id: 403 + file_id: 1 + namespace: ~ + parent: ~ + pub_span: ~ + type_params: [] + type_param_parent: ~ + inherited_type_param_count: 0 + signature_index: 202 + name: + inner: 203 + span: + start: 67 + end: 71 + params: [] + result: + inner: 19 + span: + start: 77 + end: 80 + accesses: + - file_id: 1 + span: + start: 124 + end: 128 + attributes: [] + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 81 + end: 113 + locals: [] + inferred_type: 19 + expected_type: 19 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 1 + fields: [] + ty: 19 + span: + start: 87 + end: 111 + ty: 19 + span: + start: 81 + end: 113 + - id: 13 + file_id: 0 + namespace: 0 + parent: + Trait: 0 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 0 + inherited_type_param_count: 1 + signature_index: 21 + name: + inner: 18 + span: + start: 404 + end: 407 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 408 + end: 412 + ty: + inner: 20 + span: + start: 414 + end: 418 + - mut_span: ~ + name: + inner: 21 + span: + start: 420 + end: 423 + ty: + inner: 20 + span: + start: 425 + end: 429 + result: + inner: 20 + span: + start: 434 + end: 438 + accesses: [] + attributes: [] + body: ~ + - id: 15 + file_id: 0 + namespace: 0 + parent: + Trait: 1 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 1 + inherited_type_param_count: 1 + signature_index: 23 + name: + inner: 24 + span: + start: 481 + end: 484 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 485 + end: 489 + ty: + inner: 22 + span: + start: 491 + end: 495 + - mut_span: ~ + name: + inner: 21 + span: + start: 497 + end: 500 + ty: + inner: 22 + span: + start: 502 + end: 506 + result: + inner: 22 + span: + start: 511 + end: 515 + accesses: [] + attributes: [] + body: ~ + - id: 17 + file_id: 0 + namespace: 0 + parent: + Trait: 2 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 2 + inherited_type_param_count: 1 + signature_index: 25 + name: + inner: 27 + span: + start: 558 + end: 561 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 562 + end: 566 + ty: + inner: 24 + span: + start: 568 + end: 572 + - mut_span: ~ + name: + inner: 21 + span: + start: 574 + end: 577 + ty: + inner: 24 + span: + start: 579 + end: 583 + result: + inner: 24 + span: + start: 588 + end: 592 + accesses: [] + attributes: [] + body: ~ + - id: 19 + file_id: 0 + namespace: 0 + parent: + Trait: 3 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 3 + inherited_type_param_count: 1 + signature_index: 27 + name: + inner: 30 + span: + start: 635 + end: 638 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 639 + end: 643 + ty: + inner: 26 + span: + start: 645 + end: 649 + - mut_span: ~ + name: + inner: 21 + span: + start: 651 + end: 654 + ty: + inner: 26 + span: + start: 656 + end: 660 + result: + inner: 26 + span: + start: 665 + end: 669 + accesses: [] + attributes: [] + body: ~ + - id: 21 + file_id: 0 + namespace: 0 + parent: + Trait: 4 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 4 + inherited_type_param_count: 1 + signature_index: 29 + name: + inner: 33 + span: + start: 712 + end: 715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 716 + end: 720 + ty: + inner: 28 + span: + start: 722 + end: 726 + - mut_span: ~ + name: + inner: 21 + span: + start: 728 + end: 731 + ty: + inner: 28 + span: + start: 733 + end: 737 + result: + inner: 28 + span: + start: 742 + end: 746 + accesses: [] + attributes: [] + body: ~ + - id: 23 + file_id: 0 + namespace: 0 + parent: + Trait: 5 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 5 + inherited_type_param_count: 1 + signature_index: 31 + name: + inner: 36 + span: + start: 789 + end: 792 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 793 + end: 797 + ty: + inner: 30 + span: + start: 799 + end: 803 + result: + inner: 30 + span: + start: 808 + end: 812 + accesses: [] + attributes: [] + body: ~ + - id: 25 + file_id: 0 + namespace: 0 + parent: + Trait: 6 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 6 + inherited_type_param_count: 1 + signature_index: 33 + name: + inner: 39 + span: + start: 861 + end: 867 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 868 + end: 872 + ty: + inner: 32 + span: + start: 874 + end: 878 + - mut_span: ~ + name: + inner: 21 + span: + start: 880 + end: 883 + ty: + inner: 32 + span: + start: 885 + end: 889 + result: + inner: 32 + span: + start: 894 + end: 898 + accesses: [] + attributes: [] + body: ~ + - id: 27 + file_id: 0 + namespace: 0 + parent: + Trait: 7 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 7 + inherited_type_param_count: 1 + signature_index: 35 + name: + inner: 42 + span: + start: 945 + end: 950 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 951 + end: 955 + ty: + inner: 34 + span: + start: 957 + end: 961 + - mut_span: ~ + name: + inner: 21 + span: + start: 963 + end: 966 + ty: + inner: 34 + span: + start: 968 + end: 972 + result: + inner: 34 + span: + start: 977 + end: 981 + accesses: [] + attributes: [] + body: ~ + - id: 29 + file_id: 0 + namespace: 0 + parent: + Trait: 8 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 8 + inherited_type_param_count: 1 + signature_index: 37 + name: + inner: 45 + span: + start: 1030 + end: 1036 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1037 + end: 1041 + ty: + inner: 36 + span: + start: 1043 + end: 1047 + - mut_span: ~ + name: + inner: 21 + span: + start: 1049 + end: 1052 + ty: + inner: 36 + span: + start: 1054 + end: 1058 + result: + inner: 36 + span: + start: 1063 + end: 1067 + accesses: [] + attributes: [] + body: ~ + - id: 31 + file_id: 0 + namespace: 0 + parent: + Trait: 9 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 9 + inherited_type_param_count: 1 + signature_index: 39 + name: + inner: 48 + span: + start: 1110 + end: 1113 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1114 + end: 1118 + ty: + inner: 38 + span: + start: 1120 + end: 1124 + - mut_span: ~ + name: + inner: 21 + span: + start: 1126 + end: 1129 + ty: + inner: 38 + span: + start: 1131 + end: 1135 + result: + inner: 38 + span: + start: 1140 + end: 1144 + accesses: [] + attributes: [] + body: ~ + - id: 33 + file_id: 0 + namespace: 0 + parent: + Trait: 10 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 10 + inherited_type_param_count: 1 + signature_index: 41 + name: + inner: 51 + span: + start: 1187 + end: 1190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1191 + end: 1195 + ty: + inner: 40 + span: + start: 1197 + end: 1201 + - mut_span: ~ + name: + inner: 21 + span: + start: 1203 + end: 1206 + ty: + inner: 40 + span: + start: 1208 + end: 1212 + result: + inner: 40 + span: + start: 1217 + end: 1221 + accesses: [] + attributes: [] + body: ~ + - id: 35 + file_id: 0 + namespace: 0 + parent: + Trait: 11 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 11 + inherited_type_param_count: 1 + signature_index: 43 + name: + inner: 54 + span: + start: 1270 + end: 1276 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 1277 + end: 1281 + ty: + inner: 42 + span: + start: 1283 + end: 1287 + result: + inner: 42 + span: + start: 1292 + end: 1296 + accesses: [] + attributes: [] + body: ~ + - id: 363 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 51 + name: + inner: 165 + span: + start: 20186 + end: 20190 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: + inner: 45 + span: + start: 20191 + end: 20195 + - mut_span: ~ + name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: + inner: 47 + span: + start: 20204 + end: 20214 + result: + inner: 50 + span: + start: 20219 + end: 20237 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20238 + end: 20278 + locals: + - name: + inner: 19 + span: + start: 20191 + end: 20195 + ty: 45 + mut_span: ~ + accesses: + - span: + start: 20260 + end: 20264 + kind: Read + - name: + inner: 60 + span: + start: 20197 + end: 20202 + ty: 47 + mut_span: ~ + accesses: + - span: + start: 20266 + end: 20271 + kind: Read + inferred_type: 50 + expected_type: 50 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 38 + type_args: + - 45 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 45 + span: + start: 20260 + end: 20264 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 47 + span: + start: 20266 + end: 20271 + ty: 50 + span: + start: 20248 + end: 20272 + ty: 50 + span: + start: 20238 + end: 20278 + - id: 364 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 14 + inherited_type_param_count: 1 + signature_index: 52 + name: + inner: 166 + span: + start: 20301 + end: 20305 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: + inner: 45 + span: + start: 20306 + end: 20310 + result: + inner: 47 + span: + start: 20315 + end: 20325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20326 + end: 20359 + locals: + - name: + inner: 19 + span: + start: 20306 + end: 20310 + ty: 45 + mut_span: ~ + accesses: + - span: + start: 20348 + end: 20352 + kind: Read + inferred_type: 47 + expected_type: 47 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 39 + type_args: + - 45 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 45 + span: + start: 20348 + end: 20352 + ty: 47 + span: + start: 20336 + end: 20353 + ty: 47 + span: + start: 20326 + end: 20359 + - id: 119 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 0 + pub_span: + start: 6046 + end: 6049 + type_params: [] + type_param_parent: + ImplBlock: 0 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 157 + span: + start: 6053 + end: 6058 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: + inner: 14 + span: + start: 6065 + end: 6069 + result: + inner: 14 + span: + start: 6074 + end: 6078 + accesses: + - file_id: 0 + span: + start: 12142 + end: 12147 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6079 + end: 6098 + locals: + - name: + inner: 19 + span: + start: 6059 + end: 6063 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 6091 + end: 6095 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 58 + ty: 203 + span: + start: 6081 + end: 6090 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 6091 + end: 6095 + ty: 14 + span: + start: 6081 + end: 6096 + ty: 14 + span: + start: 6079 + end: 6098 + - id: 122 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 1 + pub_span: + start: 6195 + end: 6198 + type_params: [] + type_param_parent: + ImplBlock: 1 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 157 + span: + start: 6202 + end: 6207 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: + inner: 15 + span: + start: 6214 + end: 6218 + result: + inner: 15 + span: + start: 6223 + end: 6227 + accesses: + - file_id: 0 + span: + start: 12854 + end: 12859 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6228 + end: 6247 + locals: + - name: + inner: 19 + span: + start: 6208 + end: 6212 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 6240 + end: 6244 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 59 + ty: 204 + span: + start: 6230 + end: 6239 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 6240 + end: 6244 + ty: 15 + span: + start: 6230 + end: 6245 + ty: 15 + span: + start: 6228 + end: 6247 + - id: 124 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 0 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 18 + span: + start: 6291 + end: 6294 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: + inner: 11 + span: + start: 6301 + end: 6305 + - mut_span: ~ + name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: + inner: 11 + span: + start: 6312 + end: 6316 + result: + inner: 11 + span: + start: 6321 + end: 6325 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6326 + end: 6348 + locals: + - name: + inner: 19 + span: + start: 6295 + end: 6299 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6336 + end: 6340 + kind: Read + - name: + inner: 21 + span: + start: 6307 + end: 6310 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6342 + end: 6345 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 6328 + end: 6335 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6336 + end: 6340 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6342 + end: 6345 + ty: 11 + span: + start: 6328 + end: 6346 + ty: 11 + span: + start: 6326 + end: 6348 + - id: 126 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 1 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 24 + span: + start: 6392 + end: 6395 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: + inner: 11 + span: + start: 6402 + end: 6406 + - mut_span: ~ + name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: + inner: 11 + span: + start: 6413 + end: 6417 + result: + inner: 11 + span: + start: 6422 + end: 6426 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6427 + end: 6449 + locals: + - name: + inner: 19 + span: + start: 6396 + end: 6400 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6437 + end: 6441 + kind: Read + - name: + inner: 21 + span: + start: 6408 + end: 6411 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6443 + end: 6446 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 6429 + end: 6436 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6437 + end: 6441 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6443 + end: 6446 + ty: 11 + span: + start: 6429 + end: 6447 + ty: 11 + span: + start: 6427 + end: 6449 + - id: 128 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 2 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 27 + span: + start: 6493 + end: 6496 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: + inner: 11 + span: + start: 6503 + end: 6507 + - mut_span: ~ + name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: + inner: 11 + span: + start: 6514 + end: 6518 + result: + inner: 11 + span: + start: 6523 + end: 6527 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6528 + end: 6550 + locals: + - name: + inner: 19 + span: + start: 6497 + end: 6501 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6538 + end: 6542 + kind: Read + - name: + inner: 21 + span: + start: 6509 + end: 6512 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6544 + end: 6547 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 6530 + end: 6537 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6538 + end: 6542 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6544 + end: 6547 + ty: 11 + span: + start: 6530 + end: 6548 + ty: 11 + span: + start: 6528 + end: 6550 + - id: 130 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 3 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 30 + span: + start: 6594 + end: 6597 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: + inner: 11 + span: + start: 6604 + end: 6608 + - mut_span: ~ + name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: + inner: 11 + span: + start: 6615 + end: 6619 + result: + inner: 11 + span: + start: 6624 + end: 6628 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6629 + end: 6651 + locals: + - name: + inner: 19 + span: + start: 6598 + end: 6602 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6639 + end: 6643 + kind: Read + - name: + inner: 21 + span: + start: 6610 + end: 6613 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6645 + end: 6648 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 6631 + end: 6638 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6639 + end: 6643 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6645 + end: 6648 + ty: 11 + span: + start: 6631 + end: 6649 + ty: 11 + span: + start: 6629 + end: 6651 + - id: 132 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 4 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 33 + span: + start: 6695 + end: 6698 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: + inner: 11 + span: + start: 6705 + end: 6709 + - mut_span: ~ + name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: + inner: 11 + span: + start: 6716 + end: 6720 + result: + inner: 11 + span: + start: 6725 + end: 6729 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6730 + end: 6752 + locals: + - name: + inner: 19 + span: + start: 6699 + end: 6703 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6740 + end: 6744 + kind: Read + - name: + inner: 21 + span: + start: 6711 + end: 6714 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6746 + end: 6749 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 6732 + end: 6739 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6740 + end: 6744 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6746 + end: 6749 + ty: 11 + span: + start: 6732 + end: 6750 + ty: 11 + span: + start: 6730 + end: 6752 + - id: 134 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 5 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 36 + span: + start: 6796 + end: 6799 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: + inner: 11 + span: + start: 6806 + end: 6810 + result: + inner: 11 + span: + start: 6815 + end: 6819 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6820 + end: 6837 + locals: + - name: + inner: 19 + span: + start: 6800 + end: 6804 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6830 + end: 6834 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 6822 + end: 6829 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6830 + end: 6834 + ty: 11 + span: + start: 6822 + end: 6835 + ty: 11 + span: + start: 6820 + end: 6837 + - id: 136 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 6 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 39 + span: + start: 6884 + end: 6890 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: + inner: 11 + span: + start: 6897 + end: 6901 + - mut_span: ~ + name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: + inner: 11 + span: + start: 6908 + end: 6912 + result: + inner: 11 + span: + start: 6917 + end: 6921 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 6922 + end: 6947 + locals: + - name: + inner: 19 + span: + start: 6891 + end: 6895 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6935 + end: 6939 + kind: Read + - name: + inner: 21 + span: + start: 6903 + end: 6906 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 6941 + end: 6944 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 6924 + end: 6934 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 6935 + end: 6939 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 6941 + end: 6944 + ty: 11 + span: + start: 6924 + end: 6945 + ty: 11 + span: + start: 6922 + end: 6947 + - id: 138 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 7 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 42 + span: + start: 6993 + end: 6998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: + inner: 11 + span: + start: 7005 + end: 7009 + - mut_span: ~ + name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: + inner: 11 + span: + start: 7016 + end: 7020 + result: + inner: 11 + span: + start: 7025 + end: 7029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7030 + end: 7054 + locals: + - name: + inner: 19 + span: + start: 6999 + end: 7003 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7042 + end: 7046 + kind: Read + - name: + inner: 21 + span: + start: 7011 + end: 7014 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7048 + end: 7051 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 7032 + end: 7041 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7042 + end: 7046 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7048 + end: 7051 + ty: 11 + span: + start: 7032 + end: 7052 + ty: 11 + span: + start: 7030 + end: 7054 + - id: 140 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 8 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 45 + span: + start: 7101 + end: 7107 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: + inner: 11 + span: + start: 7114 + end: 7118 + - mut_span: ~ + name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: + inner: 11 + span: + start: 7125 + end: 7129 + result: + inner: 11 + span: + start: 7134 + end: 7138 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7139 + end: 7164 + locals: + - name: + inner: 19 + span: + start: 7108 + end: 7112 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7152 + end: 7156 + kind: Read + - name: + inner: 21 + span: + start: 7120 + end: 7123 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7158 + end: 7161 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 7141 + end: 7151 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7152 + end: 7156 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7158 + end: 7161 + ty: 11 + span: + start: 7141 + end: 7162 + ty: 11 + span: + start: 7139 + end: 7164 + - id: 142 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 9 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 48 + span: + start: 7208 + end: 7211 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: + inner: 11 + span: + start: 7218 + end: 7222 + - mut_span: ~ + name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: + inner: 11 + span: + start: 7229 + end: 7233 + result: + inner: 11 + span: + start: 7238 + end: 7242 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7243 + end: 7265 + locals: + - name: + inner: 19 + span: + start: 7212 + end: 7216 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7253 + end: 7257 + kind: Read + - name: + inner: 21 + span: + start: 7224 + end: 7227 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7259 + end: 7262 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 7245 + end: 7252 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7253 + end: 7257 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7259 + end: 7262 + ty: 11 + span: + start: 7245 + end: 7263 + ty: 11 + span: + start: 7243 + end: 7265 + - id: 144 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 10 + inherited_type_param_count: 0 + signature_index: 98 + name: + inner: 51 + span: + start: 7309 + end: 7312 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: + inner: 11 + span: + start: 7319 + end: 7323 + - mut_span: ~ + name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: + inner: 11 + span: + start: 7330 + end: 7334 + result: + inner: 11 + span: + start: 7339 + end: 7343 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7344 + end: 7366 + locals: + - name: + inner: 19 + span: + start: 7313 + end: 7317 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7354 + end: 7358 + kind: Read + - name: + inner: 21 + span: + start: 7325 + end: 7328 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7360 + end: 7363 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 7346 + end: 7353 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7354 + end: 7358 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7360 + end: 7363 + ty: 11 + span: + start: 7346 + end: 7364 + ty: 11 + span: + start: 7344 + end: 7366 + - id: 146 + file_id: 0 + namespace: 0 + parent: + Impl: 11 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 11 + inherited_type_param_count: 0 + signature_index: 96 + name: + inner: 54 + span: + start: 7413 + end: 7419 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: + inner: 11 + span: + start: 7426 + end: 7430 + result: + inner: 11 + span: + start: 7435 + end: 7439 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7440 + end: 7460 + locals: + - name: + inner: 19 + span: + start: 7420 + end: 7424 + ty: 11 + mut_span: ~ + accesses: + - span: + start: 7453 + end: 7457 + kind: Read + inferred_type: 11 + expected_type: 11 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 7442 + end: 7452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7453 + end: 7457 + ty: 11 + span: + start: 7442 + end: 7458 + ty: 11 + span: + start: 7440 + end: 7460 + - id: 148 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 12 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 18 + span: + start: 7504 + end: 7507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: + inner: 10 + span: + start: 7514 + end: 7518 + - mut_span: ~ + name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: + inner: 10 + span: + start: 7525 + end: 7529 + result: + inner: 10 + span: + start: 7534 + end: 7538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7539 + end: 7594 + locals: + - name: + inner: 19 + span: + start: 7508 + end: 7512 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7557 + end: 7561 + kind: Read + - name: + inner: 21 + span: + start: 7520 + end: 7523 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7570 + end: 7573 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 7549 + end: 7556 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7557 + end: 7561 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7570 + end: 7573 + ty: 10 + span: + start: 7549 + end: 7581 + ty: 10 + span: + start: 7539 + end: 7594 + - id: 150 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 13 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 24 + span: + start: 7638 + end: 7641 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: + inner: 10 + span: + start: 7648 + end: 7652 + - mut_span: ~ + name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: + inner: 10 + span: + start: 7659 + end: 7663 + result: + inner: 10 + span: + start: 7668 + end: 7672 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7673 + end: 7728 + locals: + - name: + inner: 19 + span: + start: 7642 + end: 7646 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7691 + end: 7695 + kind: Read + - name: + inner: 21 + span: + start: 7654 + end: 7657 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7704 + end: 7707 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 7683 + end: 7690 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7691 + end: 7695 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7704 + end: 7707 + ty: 10 + span: + start: 7683 + end: 7715 + ty: 10 + span: + start: 7673 + end: 7728 + - id: 152 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 14 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 27 + span: + start: 7772 + end: 7775 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: + inner: 10 + span: + start: 7782 + end: 7786 + - mut_span: ~ + name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: + inner: 10 + span: + start: 7793 + end: 7797 + result: + inner: 10 + span: + start: 7802 + end: 7806 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7807 + end: 7862 + locals: + - name: + inner: 19 + span: + start: 7776 + end: 7780 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7825 + end: 7829 + kind: Read + - name: + inner: 21 + span: + start: 7788 + end: 7791 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7838 + end: 7841 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 7817 + end: 7824 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 7825 + end: 7829 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 7838 + end: 7841 + ty: 10 + span: + start: 7817 + end: 7849 + ty: 10 + span: + start: 7807 + end: 7862 + - id: 154 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 15 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 30 + span: + start: 7906 + end: 7909 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: + inner: 10 + span: + start: 7916 + end: 7920 + - mut_span: ~ + name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: + inner: 10 + span: + start: 7927 + end: 7931 + result: + inner: 10 + span: + start: 7936 + end: 7940 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 7941 + end: 7963 + locals: + - name: + inner: 19 + span: + start: 7910 + end: 7914 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7951 + end: 7955 + kind: Read + - name: + inner: 21 + span: + start: 7922 + end: 7925 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 7957 + end: 7960 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 7943 + end: 7950 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 7951 + end: 7955 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 7957 + end: 7960 + ty: 10 + span: + start: 7943 + end: 7961 + ty: 10 + span: + start: 7941 + end: 7963 + - id: 156 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 16 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 33 + span: + start: 8007 + end: 8010 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: + inner: 10 + span: + start: 8017 + end: 8021 + - mut_span: ~ + name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: + inner: 10 + span: + start: 8028 + end: 8032 + result: + inner: 10 + span: + start: 8037 + end: 8041 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8042 + end: 8064 + locals: + - name: + inner: 19 + span: + start: 8011 + end: 8015 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8052 + end: 8056 + kind: Read + - name: + inner: 21 + span: + start: 8023 + end: 8026 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8058 + end: 8061 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 8044 + end: 8051 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8052 + end: 8056 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8058 + end: 8061 + ty: 10 + span: + start: 8044 + end: 8062 + ty: 10 + span: + start: 8042 + end: 8064 + - id: 158 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 17 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 39 + span: + start: 8111 + end: 8117 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: + inner: 10 + span: + start: 8124 + end: 8128 + - mut_span: ~ + name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: + inner: 10 + span: + start: 8135 + end: 8139 + result: + inner: 10 + span: + start: 8144 + end: 8148 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8149 + end: 8207 + locals: + - name: + inner: 19 + span: + start: 8118 + end: 8122 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8170 + end: 8174 + kind: Read + - name: + inner: 21 + span: + start: 8130 + end: 8133 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8183 + end: 8186 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 8159 + end: 8169 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8170 + end: 8174 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8183 + end: 8186 + ty: 10 + span: + start: 8159 + end: 8194 + ty: 10 + span: + start: 8149 + end: 8207 + - id: 160 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 18 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 42 + span: + start: 8253 + end: 8258 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: + inner: 10 + span: + start: 8265 + end: 8269 + - mut_span: ~ + name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: + inner: 10 + span: + start: 8276 + end: 8280 + result: + inner: 10 + span: + start: 8285 + end: 8289 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8290 + end: 8347 + locals: + - name: + inner: 19 + span: + start: 8259 + end: 8263 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8310 + end: 8314 + kind: Read + - name: + inner: 21 + span: + start: 8271 + end: 8274 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8323 + end: 8326 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 8300 + end: 8309 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8310 + end: 8314 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8323 + end: 8326 + ty: 10 + span: + start: 8300 + end: 8334 + ty: 10 + span: + start: 8290 + end: 8347 + - id: 162 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 19 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 45 + span: + start: 8394 + end: 8400 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: + inner: 10 + span: + start: 8407 + end: 8411 + - mut_span: ~ + name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: + inner: 10 + span: + start: 8418 + end: 8422 + result: + inner: 10 + span: + start: 8427 + end: 8431 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8432 + end: 8490 + locals: + - name: + inner: 19 + span: + start: 8401 + end: 8405 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8453 + end: 8457 + kind: Read + - name: + inner: 21 + span: + start: 8413 + end: 8416 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8466 + end: 8469 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 8442 + end: 8452 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8453 + end: 8457 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8466 + end: 8469 + ty: 10 + span: + start: 8442 + end: 8477 + ty: 10 + span: + start: 8432 + end: 8490 + - id: 164 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 20 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 48 + span: + start: 8534 + end: 8537 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: + inner: 10 + span: + start: 8544 + end: 8548 + - mut_span: ~ + name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: + inner: 10 + span: + start: 8555 + end: 8559 + result: + inner: 10 + span: + start: 8564 + end: 8568 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8569 + end: 8624 + locals: + - name: + inner: 19 + span: + start: 8538 + end: 8542 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8587 + end: 8591 + kind: Read + - name: + inner: 21 + span: + start: 8550 + end: 8553 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8600 + end: 8603 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 8579 + end: 8586 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8587 + end: 8591 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 8600 + end: 8603 + ty: 10 + span: + start: 8579 + end: 8611 + ty: 10 + span: + start: 8569 + end: 8624 + - id: 166 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 21 + inherited_type_param_count: 0 + signature_index: 102 + name: + inner: 51 + span: + start: 8668 + end: 8671 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: + inner: 10 + span: + start: 8678 + end: 8682 + - mut_span: ~ + name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: + inner: 10 + span: + start: 8689 + end: 8693 + result: + inner: 10 + span: + start: 8698 + end: 8702 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8703 + end: 8725 + locals: + - name: + inner: 19 + span: + start: 8672 + end: 8676 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8713 + end: 8717 + kind: Read + - name: + inner: 21 + span: + start: 8684 + end: 8687 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8719 + end: 8722 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 8705 + end: 8712 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 8713 + end: 8717 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 8719 + end: 8722 + ty: 10 + span: + start: 8705 + end: 8723 + ty: 10 + span: + start: 8703 + end: 8725 + - id: 168 + file_id: 0 + namespace: 0 + parent: + Impl: 10 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 22 + inherited_type_param_count: 0 + signature_index: 122 + name: + inner: 54 + span: + start: 8772 + end: 8778 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: + inner: 10 + span: + start: 8785 + end: 8789 + result: + inner: 10 + span: + start: 8794 + end: 8798 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8799 + end: 8845 + locals: + - name: + inner: 19 + span: + start: 8779 + end: 8783 + ty: 10 + mut_span: ~ + accesses: + - span: + start: 8820 + end: 8824 + kind: Read + inferred_type: 10 + expected_type: 10 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 8809 + end: 8819 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 8820 + end: 8824 + ty: 10 + span: + start: 8809 + end: 8832 + ty: 10 + span: + start: 8799 + end: 8845 + - id: 170 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 23 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 18 + span: + start: 8889 + end: 8892 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: + inner: 13 + span: + start: 8899 + end: 8903 + - mut_span: ~ + name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: + inner: 13 + span: + start: 8910 + end: 8914 + result: + inner: 13 + span: + start: 8919 + end: 8923 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 8924 + end: 8946 + locals: + - name: + inner: 19 + span: + start: 8893 + end: 8897 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8934 + end: 8938 + kind: Read + - name: + inner: 21 + span: + start: 8905 + end: 8908 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 8940 + end: 8943 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 8926 + end: 8933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 8934 + end: 8938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 8940 + end: 8943 + ty: 13 + span: + start: 8926 + end: 8944 + ty: 13 + span: + start: 8924 + end: 8946 + - id: 172 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 24 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 24 + span: + start: 8990 + end: 8993 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: + inner: 13 + span: + start: 9000 + end: 9004 + - mut_span: ~ + name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: + inner: 13 + span: + start: 9011 + end: 9015 + result: + inner: 13 + span: + start: 9020 + end: 9024 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9025 + end: 9047 + locals: + - name: + inner: 19 + span: + start: 8994 + end: 8998 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9035 + end: 9039 + kind: Read + - name: + inner: 21 + span: + start: 9006 + end: 9009 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9041 + end: 9044 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 9027 + end: 9034 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9035 + end: 9039 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9041 + end: 9044 + ty: 13 + span: + start: 9027 + end: 9045 + ty: 13 + span: + start: 9025 + end: 9047 + - id: 174 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 25 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 27 + span: + start: 9091 + end: 9094 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: + inner: 13 + span: + start: 9101 + end: 9105 + - mut_span: ~ + name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: + inner: 13 + span: + start: 9112 + end: 9116 + result: + inner: 13 + span: + start: 9121 + end: 9125 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9126 + end: 9148 + locals: + - name: + inner: 19 + span: + start: 9095 + end: 9099 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9136 + end: 9140 + kind: Read + - name: + inner: 21 + span: + start: 9107 + end: 9110 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9142 + end: 9145 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 9128 + end: 9135 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9136 + end: 9140 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9142 + end: 9145 + ty: 13 + span: + start: 9128 + end: 9146 + ty: 13 + span: + start: 9126 + end: 9148 + - id: 176 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 26 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 30 + span: + start: 9192 + end: 9195 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: + inner: 13 + span: + start: 9202 + end: 9206 + - mut_span: ~ + name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: + inner: 13 + span: + start: 9213 + end: 9217 + result: + inner: 13 + span: + start: 9222 + end: 9226 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9227 + end: 9249 + locals: + - name: + inner: 19 + span: + start: 9196 + end: 9200 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9237 + end: 9241 + kind: Read + - name: + inner: 21 + span: + start: 9208 + end: 9211 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9243 + end: 9246 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 78 + ty: 223 + span: + start: 9229 + end: 9236 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9237 + end: 9241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9243 + end: 9246 + ty: 13 + span: + start: 9229 + end: 9247 + ty: 13 + span: + start: 9227 + end: 9249 + - id: 178 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 27 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 33 + span: + start: 9293 + end: 9296 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: + inner: 13 + span: + start: 9303 + end: 9307 + - mut_span: ~ + name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: + inner: 13 + span: + start: 9314 + end: 9318 + result: + inner: 13 + span: + start: 9323 + end: 9327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9328 + end: 9350 + locals: + - name: + inner: 19 + span: + start: 9297 + end: 9301 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9338 + end: 9342 + kind: Read + - name: + inner: 21 + span: + start: 9309 + end: 9312 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9344 + end: 9347 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 84 + ty: 224 + span: + start: 9330 + end: 9337 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9338 + end: 9342 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9344 + end: 9347 + ty: 13 + span: + start: 9330 + end: 9348 + ty: 13 + span: + start: 9328 + end: 9350 + - id: 180 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 28 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 36 + span: + start: 9394 + end: 9397 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: + inner: 13 + span: + start: 9404 + end: 9408 + result: + inner: 13 + span: + start: 9413 + end: 9417 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9418 + end: 9435 + locals: + - name: + inner: 19 + span: + start: 9398 + end: 9402 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9428 + end: 9432 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 61 + ty: 225 + span: + start: 9420 + end: 9427 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9428 + end: 9432 + ty: 13 + span: + start: 9420 + end: 9433 + ty: 13 + span: + start: 9418 + end: 9435 + - id: 182 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 29 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 39 + span: + start: 9482 + end: 9488 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: + inner: 13 + span: + start: 9495 + end: 9499 + - mut_span: ~ + name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: + inner: 13 + span: + start: 9506 + end: 9510 + result: + inner: 13 + span: + start: 9515 + end: 9519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9520 + end: 9545 + locals: + - name: + inner: 19 + span: + start: 9489 + end: 9493 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9533 + end: 9537 + kind: Read + - name: + inner: 21 + span: + start: 9501 + end: 9504 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9539 + end: 9542 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 9522 + end: 9532 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9533 + end: 9537 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9539 + end: 9542 + ty: 13 + span: + start: 9522 + end: 9543 + ty: 13 + span: + start: 9520 + end: 9545 + - id: 184 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 30 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 42 + span: + start: 9591 + end: 9596 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: + inner: 13 + span: + start: 9603 + end: 9607 + - mut_span: ~ + name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: + inner: 13 + span: + start: 9614 + end: 9618 + result: + inner: 13 + span: + start: 9623 + end: 9627 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9628 + end: 9652 + locals: + - name: + inner: 19 + span: + start: 9597 + end: 9601 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9640 + end: 9644 + kind: Read + - name: + inner: 21 + span: + start: 9609 + end: 9612 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9646 + end: 9649 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 9630 + end: 9639 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9640 + end: 9644 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9646 + end: 9649 + ty: 13 + span: + start: 9630 + end: 9650 + ty: 13 + span: + start: 9628 + end: 9652 + - id: 186 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 31 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 45 + span: + start: 9699 + end: 9705 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: + inner: 13 + span: + start: 9712 + end: 9716 + - mut_span: ~ + name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: + inner: 13 + span: + start: 9723 + end: 9727 + result: + inner: 13 + span: + start: 9732 + end: 9736 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9737 + end: 9762 + locals: + - name: + inner: 19 + span: + start: 9706 + end: 9710 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9750 + end: 9754 + kind: Read + - name: + inner: 21 + span: + start: 9718 + end: 9721 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9756 + end: 9759 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 9739 + end: 9749 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9750 + end: 9754 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9756 + end: 9759 + ty: 13 + span: + start: 9739 + end: 9760 + ty: 13 + span: + start: 9737 + end: 9762 + - id: 188 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 32 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 48 + span: + start: 9806 + end: 9809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: + inner: 13 + span: + start: 9816 + end: 9820 + - mut_span: ~ + name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: + inner: 13 + span: + start: 9827 + end: 9831 + result: + inner: 13 + span: + start: 9836 + end: 9840 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9841 + end: 9863 + locals: + - name: + inner: 19 + span: + start: 9810 + end: 9814 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9851 + end: 9855 + kind: Read + - name: + inner: 21 + span: + start: 9822 + end: 9825 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9857 + end: 9860 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 9843 + end: 9850 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9851 + end: 9855 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9857 + end: 9860 + ty: 13 + span: + start: 9843 + end: 9861 + ty: 13 + span: + start: 9841 + end: 9863 + - id: 190 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 33 + inherited_type_param_count: 0 + signature_index: 99 + name: + inner: 51 + span: + start: 9907 + end: 9910 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: + inner: 13 + span: + start: 9917 + end: 9921 + - mut_span: ~ + name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: + inner: 13 + span: + start: 9928 + end: 9932 + result: + inner: 13 + span: + start: 9937 + end: 9941 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 9942 + end: 9964 + locals: + - name: + inner: 19 + span: + start: 9911 + end: 9915 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9952 + end: 9956 + kind: Read + - name: + inner: 21 + span: + start: 9923 + end: 9926 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 9958 + end: 9961 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 96 + ty: 230 + span: + start: 9944 + end: 9951 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 9952 + end: 9956 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 9958 + end: 9961 + ty: 13 + span: + start: 9944 + end: 9962 + ty: 13 + span: + start: 9942 + end: 9964 + - id: 192 + file_id: 0 + namespace: 0 + parent: + Impl: 13 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 34 + inherited_type_param_count: 0 + signature_index: 97 + name: + inner: 54 + span: + start: 10011 + end: 10017 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: + inner: 13 + span: + start: 10024 + end: 10028 + result: + inner: 13 + span: + start: 10033 + end: 10037 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10038 + end: 10058 + locals: + - name: + inner: 19 + span: + start: 10018 + end: 10022 + ty: 13 + mut_span: ~ + accesses: + - span: + start: 10051 + end: 10055 + kind: Read + inferred_type: 13 + expected_type: 13 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 10040 + end: 10050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10051 + end: 10055 + ty: 13 + span: + start: 10040 + end: 10056 + ty: 13 + span: + start: 10038 + end: 10058 + - id: 194 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 35 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 18 + span: + start: 10102 + end: 10105 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: + inner: 12 + span: + start: 10112 + end: 10116 + - mut_span: ~ + name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: + inner: 12 + span: + start: 10123 + end: 10127 + result: + inner: 12 + span: + start: 10132 + end: 10136 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10137 + end: 10192 + locals: + - name: + inner: 19 + span: + start: 10106 + end: 10110 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10155 + end: 10159 + kind: Read + - name: + inner: 21 + span: + start: 10118 + end: 10121 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10168 + end: 10171 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 65 + ty: 220 + span: + start: 10147 + end: 10154 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10155 + end: 10159 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10168 + end: 10171 + ty: 12 + span: + start: 10147 + end: 10179 + ty: 12 + span: + start: 10137 + end: 10192 + - id: 196 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 36 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 24 + span: + start: 10236 + end: 10239 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: + inner: 12 + span: + start: 10246 + end: 10250 + - mut_span: ~ + name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: + inner: 12 + span: + start: 10257 + end: 10261 + result: + inner: 12 + span: + start: 10266 + end: 10270 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10271 + end: 10326 + locals: + - name: + inner: 19 + span: + start: 10240 + end: 10244 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10289 + end: 10293 + kind: Read + - name: + inner: 21 + span: + start: 10252 + end: 10255 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10302 + end: 10305 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 69 + ty: 221 + span: + start: 10281 + end: 10288 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10289 + end: 10293 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10302 + end: 10305 + ty: 12 + span: + start: 10281 + end: 10313 + ty: 12 + span: + start: 10271 + end: 10326 + - id: 198 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 37 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 27 + span: + start: 10370 + end: 10373 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: + inner: 12 + span: + start: 10380 + end: 10384 + - mut_span: ~ + name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: + inner: 12 + span: + start: 10391 + end: 10395 + result: + inner: 12 + span: + start: 10400 + end: 10404 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10405 + end: 10460 + locals: + - name: + inner: 19 + span: + start: 10374 + end: 10378 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10423 + end: 10427 + kind: Read + - name: + inner: 21 + span: + start: 10386 + end: 10389 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10436 + end: 10439 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 73 + ty: 222 + span: + start: 10415 + end: 10422 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10423 + end: 10427 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10436 + end: 10439 + ty: 12 + span: + start: 10415 + end: 10447 + ty: 12 + span: + start: 10405 + end: 10460 + - id: 200 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 38 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 30 + span: + start: 10504 + end: 10507 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: + inner: 12 + span: + start: 10514 + end: 10518 + - mut_span: ~ + name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: + inner: 12 + span: + start: 10525 + end: 10529 + result: + inner: 12 + span: + start: 10534 + end: 10538 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10539 + end: 10561 + locals: + - name: + inner: 19 + span: + start: 10508 + end: 10512 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10549 + end: 10553 + kind: Read + - name: + inner: 21 + span: + start: 10520 + end: 10523 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10555 + end: 10558 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 79 + ty: 232 + span: + start: 10541 + end: 10548 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10549 + end: 10553 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10555 + end: 10558 + ty: 12 + span: + start: 10541 + end: 10559 + ty: 12 + span: + start: 10539 + end: 10561 + - id: 202 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 39 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 33 + span: + start: 10605 + end: 10608 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: + inner: 12 + span: + start: 10615 + end: 10619 + - mut_span: ~ + name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: + inner: 12 + span: + start: 10626 + end: 10630 + result: + inner: 12 + span: + start: 10635 + end: 10639 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10640 + end: 10662 + locals: + - name: + inner: 19 + span: + start: 10609 + end: 10613 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10650 + end: 10654 + kind: Read + - name: + inner: 21 + span: + start: 10621 + end: 10624 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10656 + end: 10659 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 85 + ty: 233 + span: + start: 10642 + end: 10649 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 10650 + end: 10654 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 10656 + end: 10659 + ty: 12 + span: + start: 10642 + end: 10660 + ty: 12 + span: + start: 10640 + end: 10662 + - id: 204 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 40 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 39 + span: + start: 10709 + end: 10715 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: + inner: 12 + span: + start: 10722 + end: 10726 + - mut_span: ~ + name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: + inner: 12 + span: + start: 10733 + end: 10737 + result: + inner: 12 + span: + start: 10742 + end: 10746 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10747 + end: 10805 + locals: + - name: + inner: 19 + span: + start: 10716 + end: 10720 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10768 + end: 10772 + kind: Read + - name: + inner: 21 + span: + start: 10728 + end: 10731 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10781 + end: 10784 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 87 + ty: 226 + span: + start: 10757 + end: 10767 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10768 + end: 10772 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10781 + end: 10784 + ty: 12 + span: + start: 10757 + end: 10792 + ty: 12 + span: + start: 10747 + end: 10805 + - id: 206 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 41 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 42 + span: + start: 10851 + end: 10856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: + inner: 12 + span: + start: 10863 + end: 10867 + - mut_span: ~ + name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: + inner: 12 + span: + start: 10874 + end: 10878 + result: + inner: 12 + span: + start: 10883 + end: 10887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 10888 + end: 10945 + locals: + - name: + inner: 19 + span: + start: 10857 + end: 10861 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10908 + end: 10912 + kind: Read + - name: + inner: 21 + span: + start: 10869 + end: 10872 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 10921 + end: 10924 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 89 + ty: 227 + span: + start: 10898 + end: 10907 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 10908 + end: 10912 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 10921 + end: 10924 + ty: 12 + span: + start: 10898 + end: 10932 + ty: 12 + span: + start: 10888 + end: 10945 + - id: 208 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 42 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 45 + span: + start: 10992 + end: 10998 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: + inner: 12 + span: + start: 11005 + end: 11009 + - mut_span: ~ + name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: + inner: 12 + span: + start: 11016 + end: 11020 + result: + inner: 12 + span: + start: 11025 + end: 11029 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11030 + end: 11088 + locals: + - name: + inner: 19 + span: + start: 10999 + end: 11003 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11051 + end: 11055 + kind: Read + - name: + inner: 21 + span: + start: 11011 + end: 11014 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11064 + end: 11067 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 91 + ty: 228 + span: + start: 11040 + end: 11050 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11051 + end: 11055 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11064 + end: 11067 + ty: 12 + span: + start: 11040 + end: 11075 + ty: 12 + span: + start: 11030 + end: 11088 + - id: 210 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 43 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 48 + span: + start: 11132 + end: 11135 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: + inner: 12 + span: + start: 11142 + end: 11146 + - mut_span: ~ + name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: + inner: 12 + span: + start: 11153 + end: 11157 + result: + inner: 12 + span: + start: 11162 + end: 11166 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11167 + end: 11222 + locals: + - name: + inner: 19 + span: + start: 11136 + end: 11140 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11185 + end: 11189 + kind: Read + - name: + inner: 21 + span: + start: 11148 + end: 11151 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11198 + end: 11201 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 93 + ty: 229 + span: + start: 11177 + end: 11184 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11185 + end: 11189 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 13 + span: + start: 11198 + end: 11201 + ty: 12 + span: + start: 11177 + end: 11209 + ty: 12 + span: + start: 11167 + end: 11222 + - id: 212 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 44 + inherited_type_param_count: 0 + signature_index: 103 + name: + inner: 51 + span: + start: 11266 + end: 11269 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: + inner: 12 + span: + start: 11276 + end: 11280 + - mut_span: ~ + name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: + inner: 12 + span: + start: 11287 + end: 11291 + result: + inner: 12 + span: + start: 11296 + end: 11300 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11301 + end: 11323 + locals: + - name: + inner: 19 + span: + start: 11270 + end: 11274 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11311 + end: 11315 + kind: Read + - name: + inner: 21 + span: + start: 11282 + end: 11285 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11317 + end: 11320 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 97 + ty: 234 + span: + start: 11303 + end: 11310 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 12 + span: + start: 11311 + end: 11315 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 12 + span: + start: 11317 + end: 11320 + ty: 12 + span: + start: 11303 + end: 11321 + ty: 12 + span: + start: 11301 + end: 11323 + - id: 214 + file_id: 0 + namespace: 0 + parent: + Impl: 12 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 45 + inherited_type_param_count: 0 + signature_index: 123 + name: + inner: 54 + span: + start: 11370 + end: 11376 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: + inner: 12 + span: + start: 11383 + end: 11387 + result: + inner: 12 + span: + start: 11392 + end: 11396 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11397 + end: 11443 + locals: + - name: + inner: 19 + span: + start: 11377 + end: 11381 + ty: 12 + mut_span: ~ + accesses: + - span: + start: 11418 + end: 11422 + kind: Read + inferred_type: 12 + expected_type: 12 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 99 + ty: 231 + span: + start: 11407 + end: 11417 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 13 + span: + start: 11418 + end: 11422 + ty: 12 + span: + start: 11407 + end: 11430 + ty: 12 + span: + start: 11397 + end: 11443 + - id: 216 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 46 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 18 + span: + start: 11487 + end: 11490 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: + inner: 14 + span: + start: 11497 + end: 11501 + - mut_span: ~ + name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: + inner: 14 + span: + start: 11508 + end: 11512 + result: + inner: 14 + span: + start: 11517 + end: 11521 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11522 + end: 11544 + locals: + - name: + inner: 19 + span: + start: 11491 + end: 11495 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11532 + end: 11536 + kind: Read + - name: + inner: 21 + span: + start: 11503 + end: 11506 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11538 + end: 11541 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 66 + ty: 235 + span: + start: 11524 + end: 11531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11532 + end: 11536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11538 + end: 11541 + ty: 14 + span: + start: 11524 + end: 11542 + ty: 14 + span: + start: 11522 + end: 11544 + - id: 218 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 47 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 24 + span: + start: 11588 + end: 11591 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: + inner: 14 + span: + start: 11598 + end: 11602 + - mut_span: ~ + name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: + inner: 14 + span: + start: 11609 + end: 11613 + result: + inner: 14 + span: + start: 11618 + end: 11622 + accesses: + - file_id: 0 + span: + start: 12121 + end: 12122 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11623 + end: 11645 + locals: + - name: + inner: 19 + span: + start: 11592 + end: 11596 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11633 + end: 11637 + kind: Read + - name: + inner: 21 + span: + start: 11604 + end: 11607 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11639 + end: 11642 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 70 + ty: 236 + span: + start: 11625 + end: 11632 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11633 + end: 11637 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11639 + end: 11642 + ty: 14 + span: + start: 11625 + end: 11643 + ty: 14 + span: + start: 11623 + end: 11645 + - id: 220 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 48 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 27 + span: + start: 11689 + end: 11692 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: + inner: 14 + span: + start: 11699 + end: 11703 + - mut_span: ~ + name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: + inner: 14 + span: + start: 11710 + end: 11714 + result: + inner: 14 + span: + start: 11719 + end: 11723 + accesses: + - file_id: 0 + span: + start: 12127 + end: 12128 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11724 + end: 11746 + locals: + - name: + inner: 19 + span: + start: 11693 + end: 11697 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11734 + end: 11738 + kind: Read + - name: + inner: 21 + span: + start: 11705 + end: 11708 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11740 + end: 11743 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 74 + ty: 237 + span: + start: 11726 + end: 11733 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11734 + end: 11738 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11740 + end: 11743 + ty: 14 + span: + start: 11726 + end: 11744 + ty: 14 + span: + start: 11724 + end: 11746 + - id: 222 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 49 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 30 + span: + start: 11790 + end: 11793 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: + inner: 14 + span: + start: 11800 + end: 11804 + - mut_span: ~ + name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: + inner: 14 + span: + start: 11811 + end: 11815 + result: + inner: 14 + span: + start: 11820 + end: 11824 + accesses: + - file_id: 0 + span: + start: 12135 + end: 12136 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11825 + end: 11847 + locals: + - name: + inner: 19 + span: + start: 11794 + end: 11798 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11835 + end: 11839 + kind: Read + - name: + inner: 21 + span: + start: 11806 + end: 11809 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11841 + end: 11844 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 80 + ty: 238 + span: + start: 11827 + end: 11834 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11835 + end: 11839 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 11841 + end: 11844 + ty: 14 + span: + start: 11827 + end: 11845 + ty: 14 + span: + start: 11825 + end: 11847 + - id: 224 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 50 + inherited_type_param_count: 0 + signature_index: 94 + name: + inner: 36 + span: + start: 11891 + end: 11894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: + inner: 14 + span: + start: 11901 + end: 11905 + result: + inner: 14 + span: + start: 11910 + end: 11914 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 11915 + end: 11932 + locals: + - name: + inner: 19 + span: + start: 11895 + end: 11899 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 11925 + end: 11929 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 62 + ty: 239 + span: + start: 11917 + end: 11924 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 11925 + end: 11929 + ty: 14 + span: + start: 11917 + end: 11930 + ty: 14 + span: + start: 11915 + end: 11932 + - id: 226 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 51 + inherited_type_param_count: 0 + signature_index: 100 + name: + inner: 33 + span: + start: 12071 + end: 12074 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: + inner: 14 + span: + start: 12081 + end: 12085 + - mut_span: ~ + name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: + inner: 14 + span: + start: 12092 + end: 12096 + result: + inner: 14 + span: + start: 12101 + end: 12105 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12106 + end: 12155 + locals: + - name: + inner: 19 + span: + start: 12075 + end: 12079 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12116 + end: 12120 + kind: Read + - span: + start: 12130 + end: 12134 + kind: Read + - name: + inner: 21 + span: + start: 12087 + end: 12090 + ty: 14 + mut_span: ~ + accesses: + - span: + start: 12123 + end: 12126 + kind: Read + - span: + start: 12137 + end: 12140 + kind: Read + inferred_type: 14 + expected_type: 14 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12116 + end: 12120 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12123 + end: 12126 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 14 + span: + start: 12130 + end: 12134 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 14 + span: + start: 12137 + end: 12140 + id: 222 + ty: 14 + span: + start: 12130 + end: 12140 + id: 119 + ty: 14 + span: + start: 12129 + end: 12149 + id: 220 + ty: 14 + span: + start: 12123 + end: 12149 + id: 218 + ty: 14 + span: + start: 12116 + end: 12149 + ty: 14 + span: + start: 12106 + end: 12155 + - id: 228 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 52 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 18 + span: + start: 12199 + end: 12202 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: + inner: 15 + span: + start: 12209 + end: 12213 + - mut_span: ~ + name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: + inner: 15 + span: + start: 12220 + end: 12224 + result: + inner: 15 + span: + start: 12229 + end: 12233 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12234 + end: 12256 + locals: + - name: + inner: 19 + span: + start: 12203 + end: 12207 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12244 + end: 12248 + kind: Read + - name: + inner: 21 + span: + start: 12215 + end: 12218 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12250 + end: 12253 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 67 + ty: 240 + span: + start: 12236 + end: 12243 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12244 + end: 12248 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12250 + end: 12253 + ty: 15 + span: + start: 12236 + end: 12254 + ty: 15 + span: + start: 12234 + end: 12256 + - id: 230 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 53 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 24 + span: + start: 12300 + end: 12303 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: + inner: 15 + span: + start: 12310 + end: 12314 + - mut_span: ~ + name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: + inner: 15 + span: + start: 12321 + end: 12325 + result: + inner: 15 + span: + start: 12330 + end: 12334 + accesses: + - file_id: 0 + span: + start: 12833 + end: 12834 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12335 + end: 12357 + locals: + - name: + inner: 19 + span: + start: 12304 + end: 12308 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12345 + end: 12349 + kind: Read + - name: + inner: 21 + span: + start: 12316 + end: 12319 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12351 + end: 12354 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 71 + ty: 241 + span: + start: 12337 + end: 12344 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12345 + end: 12349 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12351 + end: 12354 + ty: 15 + span: + start: 12337 + end: 12355 + ty: 15 + span: + start: 12335 + end: 12357 + - id: 232 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 54 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 27 + span: + start: 12401 + end: 12404 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: + inner: 15 + span: + start: 12411 + end: 12415 + - mut_span: ~ + name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: + inner: 15 + span: + start: 12422 + end: 12426 + result: + inner: 15 + span: + start: 12431 + end: 12435 + accesses: + - file_id: 0 + span: + start: 12839 + end: 12840 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12436 + end: 12458 + locals: + - name: + inner: 19 + span: + start: 12405 + end: 12409 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12446 + end: 12450 + kind: Read + - name: + inner: 21 + span: + start: 12417 + end: 12420 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12452 + end: 12455 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 75 + ty: 242 + span: + start: 12438 + end: 12445 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12446 + end: 12450 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12452 + end: 12455 + ty: 15 + span: + start: 12438 + end: 12456 + ty: 15 + span: + start: 12436 + end: 12458 + - id: 234 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 55 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 30 + span: + start: 12502 + end: 12505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: + inner: 15 + span: + start: 12512 + end: 12516 + - mut_span: ~ + name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: + inner: 15 + span: + start: 12523 + end: 12527 + result: + inner: 15 + span: + start: 12532 + end: 12536 + accesses: + - file_id: 0 + span: + start: 12847 + end: 12848 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12537 + end: 12559 + locals: + - name: + inner: 19 + span: + start: 12506 + end: 12510 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12547 + end: 12551 + kind: Read + - name: + inner: 21 + span: + start: 12518 + end: 12521 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12553 + end: 12556 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 81 + ty: 243 + span: + start: 12539 + end: 12546 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12547 + end: 12551 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12553 + end: 12556 + ty: 15 + span: + start: 12539 + end: 12557 + ty: 15 + span: + start: 12537 + end: 12559 + - id: 236 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 56 + inherited_type_param_count: 0 + signature_index: 95 + name: + inner: 36 + span: + start: 12603 + end: 12606 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: + inner: 15 + span: + start: 12613 + end: 12617 + result: + inner: 15 + span: + start: 12622 + end: 12626 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12627 + end: 12644 + locals: + - name: + inner: 19 + span: + start: 12607 + end: 12611 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12637 + end: 12641 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 63 + ty: 244 + span: + start: 12629 + end: 12636 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12637 + end: 12641 + ty: 15 + span: + start: 12629 + end: 12642 + ty: 15 + span: + start: 12627 + end: 12644 + - id: 238 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 57 + inherited_type_param_count: 0 + signature_index: 101 + name: + inner: 33 + span: + start: 12783 + end: 12786 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: + inner: 15 + span: + start: 12793 + end: 12797 + - mut_span: ~ + name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: + inner: 15 + span: + start: 12804 + end: 12808 + result: + inner: 15 + span: + start: 12813 + end: 12817 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12818 + end: 12867 + locals: + - name: + inner: 19 + span: + start: 12787 + end: 12791 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12828 + end: 12832 + kind: Read + - span: + start: 12842 + end: 12846 + kind: Read + - name: + inner: 21 + span: + start: 12799 + end: 12802 + ty: 15 + mut_span: ~ + accesses: + - span: + start: 12835 + end: 12838 + kind: Read + - span: + start: 12849 + end: 12852 + kind: Read + inferred_type: 15 + expected_type: 15 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12828 + end: 12832 + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12835 + end: 12838 + - kind: + MethodCall: + arguments: + - kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 15 + span: + start: 12842 + end: 12846 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 15 + span: + start: 12849 + end: 12852 + id: 234 + ty: 15 + span: + start: 12842 + end: 12852 + id: 122 + ty: 15 + span: + start: 12841 + end: 12861 + id: 232 + ty: 15 + span: + start: 12835 + end: 12861 + id: 230 + ty: 15 + span: + start: 12828 + end: 12861 + ty: 15 + span: + start: 12818 + end: 12867 + - id: 240 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 58 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 18 + span: + start: 12910 + end: 12913 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: + inner: 7 + span: + start: 12920 + end: 12924 + - mut_span: ~ + name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: + inner: 7 + span: + start: 12931 + end: 12935 + result: + inner: 7 + span: + start: 12940 + end: 12944 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 12945 + end: 12999 + locals: + - name: + inner: 19 + span: + start: 12914 + end: 12918 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12963 + end: 12967 + kind: Read + - name: + inner: 21 + span: + start: 12926 + end: 12929 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 12976 + end: 12979 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 12955 + end: 12962 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 12963 + end: 12967 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 12976 + end: 12979 + ty: 7 + span: + start: 12955 + end: 12987 + ty: 7 + span: + start: 12945 + end: 12999 + - id: 242 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 59 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 24 + span: + start: 13042 + end: 13045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: + inner: 7 + span: + start: 13052 + end: 13056 + - mut_span: ~ + name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: + inner: 7 + span: + start: 13063 + end: 13067 + result: + inner: 7 + span: + start: 13072 + end: 13076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13077 + end: 13131 + locals: + - name: + inner: 19 + span: + start: 13046 + end: 13050 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13095 + end: 13099 + kind: Read + - name: + inner: 21 + span: + start: 13058 + end: 13061 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13108 + end: 13111 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 13087 + end: 13094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13095 + end: 13099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13108 + end: 13111 + ty: 7 + span: + start: 13087 + end: 13119 + ty: 7 + span: + start: 13077 + end: 13131 + - id: 244 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 60 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 27 + span: + start: 13174 + end: 13177 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: + inner: 7 + span: + start: 13184 + end: 13188 + - mut_span: ~ + name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: + inner: 7 + span: + start: 13195 + end: 13199 + result: + inner: 7 + span: + start: 13204 + end: 13208 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13209 + end: 13263 + locals: + - name: + inner: 19 + span: + start: 13178 + end: 13182 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13227 + end: 13231 + kind: Read + - name: + inner: 21 + span: + start: 13190 + end: 13193 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13240 + end: 13243 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 13219 + end: 13226 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13227 + end: 13231 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13240 + end: 13243 + ty: 7 + span: + start: 13219 + end: 13251 + ty: 7 + span: + start: 13209 + end: 13263 + - id: 246 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 61 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 30 + span: + start: 13306 + end: 13309 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: + inner: 7 + span: + start: 13316 + end: 13320 + - mut_span: ~ + name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: + inner: 7 + span: + start: 13327 + end: 13331 + result: + inner: 7 + span: + start: 13336 + end: 13340 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13341 + end: 13395 + locals: + - name: + inner: 19 + span: + start: 13310 + end: 13314 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13359 + end: 13363 + kind: Read + - name: + inner: 21 + span: + start: 13322 + end: 13325 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13372 + end: 13375 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 13351 + end: 13358 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13359 + end: 13363 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13372 + end: 13375 + ty: 7 + span: + start: 13351 + end: 13383 + ty: 7 + span: + start: 13341 + end: 13395 + - id: 248 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 62 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 33 + span: + start: 13438 + end: 13441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: + inner: 7 + span: + start: 13448 + end: 13452 + - mut_span: ~ + name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: + inner: 7 + span: + start: 13459 + end: 13463 + result: + inner: 7 + span: + start: 13468 + end: 13472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13473 + end: 13527 + locals: + - name: + inner: 19 + span: + start: 13442 + end: 13446 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13491 + end: 13495 + kind: Read + - name: + inner: 21 + span: + start: 13454 + end: 13457 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13504 + end: 13507 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 13483 + end: 13490 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13491 + end: 13495 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13504 + end: 13507 + ty: 7 + span: + start: 13483 + end: 13515 + ty: 7 + span: + start: 13473 + end: 13527 + - id: 250 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 63 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 36 + span: + start: 13570 + end: 13573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: + inner: 7 + span: + start: 13580 + end: 13584 + result: + inner: 7 + span: + start: 13589 + end: 13593 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13594 + end: 13624 + locals: + - name: + inner: 19 + span: + start: 13574 + end: 13578 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13604 + end: 13608 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 13596 + end: 13603 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13604 + end: 13608 + ty: 7 + span: + start: 13596 + end: 13616 + ty: 7 + span: + start: 13594 + end: 13624 + - id: 252 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 64 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 39 + span: + start: 13670 + end: 13676 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: + inner: 7 + span: + start: 13683 + end: 13687 + - mut_span: ~ + name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: + inner: 7 + span: + start: 13694 + end: 13698 + result: + inner: 7 + span: + start: 13703 + end: 13707 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13708 + end: 13765 + locals: + - name: + inner: 19 + span: + start: 13677 + end: 13681 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13729 + end: 13733 + kind: Read + - name: + inner: 21 + span: + start: 13689 + end: 13692 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13742 + end: 13745 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 13718 + end: 13728 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13729 + end: 13733 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13742 + end: 13745 + ty: 7 + span: + start: 13718 + end: 13753 + ty: 7 + span: + start: 13708 + end: 13765 + - id: 254 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 65 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 42 + span: + start: 13810 + end: 13815 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: + inner: 7 + span: + start: 13822 + end: 13826 + - mut_span: ~ + name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: + inner: 7 + span: + start: 13833 + end: 13837 + result: + inner: 7 + span: + start: 13842 + end: 13846 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13847 + end: 13903 + locals: + - name: + inner: 19 + span: + start: 13816 + end: 13820 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13867 + end: 13871 + kind: Read + - name: + inner: 21 + span: + start: 13828 + end: 13831 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 13880 + end: 13883 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 13857 + end: 13866 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 13867 + end: 13871 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 13880 + end: 13883 + ty: 7 + span: + start: 13857 + end: 13891 + ty: 7 + span: + start: 13847 + end: 13903 + - id: 256 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 66 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 45 + span: + start: 13949 + end: 13955 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: + inner: 7 + span: + start: 13962 + end: 13966 + - mut_span: ~ + name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: + inner: 7 + span: + start: 13973 + end: 13977 + result: + inner: 7 + span: + start: 13982 + end: 13986 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 13987 + end: 14044 + locals: + - name: + inner: 19 + span: + start: 13956 + end: 13960 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14008 + end: 14012 + kind: Read + - name: + inner: 21 + span: + start: 13968 + end: 13971 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14021 + end: 14024 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 13997 + end: 14007 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14008 + end: 14012 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14021 + end: 14024 + ty: 7 + span: + start: 13997 + end: 14032 + ty: 7 + span: + start: 13987 + end: 14044 + - id: 258 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 67 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 48 + span: + start: 14087 + end: 14090 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: + inner: 7 + span: + start: 14097 + end: 14101 + - mut_span: ~ + name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: + inner: 7 + span: + start: 14108 + end: 14112 + result: + inner: 7 + span: + start: 14117 + end: 14121 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14122 + end: 14176 + locals: + - name: + inner: 19 + span: + start: 14091 + end: 14095 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14140 + end: 14144 + kind: Read + - name: + inner: 21 + span: + start: 14103 + end: 14106 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14153 + end: 14156 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 14132 + end: 14139 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14140 + end: 14144 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14153 + end: 14156 + ty: 7 + span: + start: 14132 + end: 14164 + ty: 7 + span: + start: 14122 + end: 14176 + - id: 260 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 68 + inherited_type_param_count: 0 + signature_index: 124 + name: + inner: 51 + span: + start: 14219 + end: 14222 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: + inner: 7 + span: + start: 14229 + end: 14233 + - mut_span: ~ + name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: + inner: 7 + span: + start: 14240 + end: 14244 + result: + inner: 7 + span: + start: 14249 + end: 14253 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14254 + end: 14308 + locals: + - name: + inner: 19 + span: + start: 14223 + end: 14227 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14272 + end: 14276 + kind: Read + - name: + inner: 21 + span: + start: 14235 + end: 14238 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14285 + end: 14288 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 14264 + end: 14271 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14272 + end: 14276 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14285 + end: 14288 + ty: 7 + span: + start: 14264 + end: 14296 + ty: 7 + span: + start: 14254 + end: 14308 + - id: 262 + file_id: 0 + namespace: 0 + parent: + Impl: 7 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 69 + inherited_type_param_count: 0 + signature_index: 125 + name: + inner: 54 + span: + start: 14354 + end: 14360 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: + inner: 7 + span: + start: 14367 + end: 14371 + result: + inner: 7 + span: + start: 14376 + end: 14380 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14381 + end: 14414 + locals: + - name: + inner: 19 + span: + start: 14361 + end: 14365 + ty: 7 + mut_span: ~ + accesses: + - span: + start: 14394 + end: 14398 + kind: Read + inferred_type: 7 + expected_type: 7 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 14383 + end: 14393 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14394 + end: 14398 + ty: 7 + span: + start: 14383 + end: 14406 + ty: 7 + span: + start: 14381 + end: 14414 + - id: 264 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 70 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 18 + span: + start: 14457 + end: 14460 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: + inner: 6 + span: + start: 14467 + end: 14471 + - mut_span: ~ + name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: + inner: 6 + span: + start: 14478 + end: 14482 + result: + inner: 6 + span: + start: 14487 + end: 14491 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14492 + end: 14546 + locals: + - name: + inner: 19 + span: + start: 14461 + end: 14465 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14510 + end: 14514 + kind: Read + - name: + inner: 21 + span: + start: 14473 + end: 14476 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14523 + end: 14526 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 14502 + end: 14509 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14510 + end: 14514 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14523 + end: 14526 + ty: 6 + span: + start: 14502 + end: 14534 + ty: 6 + span: + start: 14492 + end: 14546 + - id: 266 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 71 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 24 + span: + start: 14589 + end: 14592 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: + inner: 6 + span: + start: 14599 + end: 14603 + - mut_span: ~ + name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: + inner: 6 + span: + start: 14610 + end: 14614 + result: + inner: 6 + span: + start: 14619 + end: 14623 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14624 + end: 14678 + locals: + - name: + inner: 19 + span: + start: 14593 + end: 14597 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14642 + end: 14646 + kind: Read + - name: + inner: 21 + span: + start: 14605 + end: 14608 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14655 + end: 14658 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 14634 + end: 14641 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14642 + end: 14646 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14655 + end: 14658 + ty: 6 + span: + start: 14634 + end: 14666 + ty: 6 + span: + start: 14624 + end: 14678 + - id: 268 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 72 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 27 + span: + start: 14721 + end: 14724 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: + inner: 6 + span: + start: 14731 + end: 14735 + - mut_span: ~ + name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: + inner: 6 + span: + start: 14742 + end: 14746 + result: + inner: 6 + span: + start: 14751 + end: 14755 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14756 + end: 14810 + locals: + - name: + inner: 19 + span: + start: 14725 + end: 14729 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14774 + end: 14778 + kind: Read + - name: + inner: 21 + span: + start: 14737 + end: 14740 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14787 + end: 14790 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 14766 + end: 14773 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 14774 + end: 14778 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 14787 + end: 14790 + ty: 6 + span: + start: 14766 + end: 14798 + ty: 6 + span: + start: 14756 + end: 14810 + - id: 270 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 73 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 30 + span: + start: 14853 + end: 14856 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: + inner: 6 + span: + start: 14863 + end: 14867 + - mut_span: ~ + name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: + inner: 6 + span: + start: 14874 + end: 14878 + result: + inner: 6 + span: + start: 14883 + end: 14887 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 14888 + end: 14942 + locals: + - name: + inner: 19 + span: + start: 14857 + end: 14861 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14906 + end: 14910 + kind: Read + - name: + inner: 21 + span: + start: 14869 + end: 14872 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 14919 + end: 14922 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 14898 + end: 14905 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 14906 + end: 14910 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 14919 + end: 14922 + ty: 6 + span: + start: 14898 + end: 14930 + ty: 6 + span: + start: 14888 + end: 14942 + - id: 272 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 74 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 33 + span: + start: 14985 + end: 14988 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: + inner: 6 + span: + start: 14995 + end: 14999 + - mut_span: ~ + name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: + inner: 6 + span: + start: 15006 + end: 15010 + result: + inner: 6 + span: + start: 15015 + end: 15019 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15020 + end: 15074 + locals: + - name: + inner: 19 + span: + start: 14989 + end: 14993 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15038 + end: 15042 + kind: Read + - name: + inner: 21 + span: + start: 15001 + end: 15004 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15051 + end: 15054 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 15030 + end: 15037 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15038 + end: 15042 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15051 + end: 15054 + ty: 6 + span: + start: 15030 + end: 15062 + ty: 6 + span: + start: 15020 + end: 15074 + - id: 274 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 75 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 39 + span: + start: 15120 + end: 15126 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: + inner: 6 + span: + start: 15133 + end: 15137 + - mut_span: ~ + name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: + inner: 6 + span: + start: 15144 + end: 15148 + result: + inner: 6 + span: + start: 15153 + end: 15157 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15158 + end: 15215 + locals: + - name: + inner: 19 + span: + start: 15127 + end: 15131 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15179 + end: 15183 + kind: Read + - name: + inner: 21 + span: + start: 15139 + end: 15142 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15192 + end: 15195 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 15168 + end: 15178 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15179 + end: 15183 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15192 + end: 15195 + ty: 6 + span: + start: 15168 + end: 15203 + ty: 6 + span: + start: 15158 + end: 15215 + - id: 276 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 76 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 42 + span: + start: 15260 + end: 15265 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: + inner: 6 + span: + start: 15272 + end: 15276 + - mut_span: ~ + name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: + inner: 6 + span: + start: 15283 + end: 15287 + result: + inner: 6 + span: + start: 15292 + end: 15296 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15297 + end: 15353 + locals: + - name: + inner: 19 + span: + start: 15266 + end: 15270 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15317 + end: 15321 + kind: Read + - name: + inner: 21 + span: + start: 15278 + end: 15281 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15330 + end: 15333 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 15307 + end: 15316 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15317 + end: 15321 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15330 + end: 15333 + ty: 6 + span: + start: 15307 + end: 15341 + ty: 6 + span: + start: 15297 + end: 15353 + - id: 278 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 77 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 45 + span: + start: 15399 + end: 15405 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: + inner: 6 + span: + start: 15412 + end: 15416 + - mut_span: ~ + name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: + inner: 6 + span: + start: 15423 + end: 15427 + result: + inner: 6 + span: + start: 15432 + end: 15436 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15437 + end: 15494 + locals: + - name: + inner: 19 + span: + start: 15406 + end: 15410 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15458 + end: 15462 + kind: Read + - name: + inner: 21 + span: + start: 15418 + end: 15421 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15471 + end: 15474 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 15447 + end: 15457 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15458 + end: 15462 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15471 + end: 15474 + ty: 6 + span: + start: 15447 + end: 15482 + ty: 6 + span: + start: 15437 + end: 15494 + - id: 280 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 78 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 48 + span: + start: 15537 + end: 15540 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: + inner: 6 + span: + start: 15547 + end: 15551 + - mut_span: ~ + name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: + inner: 6 + span: + start: 15558 + end: 15562 + result: + inner: 6 + span: + start: 15567 + end: 15571 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15572 + end: 15626 + locals: + - name: + inner: 19 + span: + start: 15541 + end: 15545 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15590 + end: 15594 + kind: Read + - name: + inner: 21 + span: + start: 15553 + end: 15556 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15603 + end: 15606 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 15582 + end: 15589 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15590 + end: 15594 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15603 + end: 15606 + ty: 6 + span: + start: 15582 + end: 15614 + ty: 6 + span: + start: 15572 + end: 15626 + - id: 282 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 79 + inherited_type_param_count: 0 + signature_index: 126 + name: + inner: 51 + span: + start: 15669 + end: 15672 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: + inner: 6 + span: + start: 15679 + end: 15683 + - mut_span: ~ + name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: + inner: 6 + span: + start: 15690 + end: 15694 + result: + inner: 6 + span: + start: 15699 + end: 15703 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15704 + end: 15758 + locals: + - name: + inner: 19 + span: + start: 15673 + end: 15677 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15722 + end: 15726 + kind: Read + - name: + inner: 21 + span: + start: 15685 + end: 15688 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15735 + end: 15738 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 15714 + end: 15721 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 15722 + end: 15726 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 15735 + end: 15738 + ty: 6 + span: + start: 15714 + end: 15746 + ty: 6 + span: + start: 15704 + end: 15758 + - id: 284 + file_id: 0 + namespace: 0 + parent: + Impl: 6 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 80 + inherited_type_param_count: 0 + signature_index: 127 + name: + inner: 54 + span: + start: 15804 + end: 15810 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: + inner: 6 + span: + start: 15817 + end: 15821 + result: + inner: 6 + span: + start: 15826 + end: 15830 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15831 + end: 15864 + locals: + - name: + inner: 19 + span: + start: 15811 + end: 15815 + ty: 6 + mut_span: ~ + accesses: + - span: + start: 15844 + end: 15848 + kind: Read + inferred_type: 6 + expected_type: 6 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 15833 + end: 15843 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15844 + end: 15848 + ty: 6 + span: + start: 15833 + end: 15856 + ty: 6 + span: + start: 15831 + end: 15864 + - id: 286 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 81 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 18 + span: + start: 15908 + end: 15911 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: + inner: 9 + span: + start: 15918 + end: 15922 + - mut_span: ~ + name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: + inner: 9 + span: + start: 15929 + end: 15933 + result: + inner: 9 + span: + start: 15938 + end: 15942 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 15943 + end: 15998 + locals: + - name: + inner: 19 + span: + start: 15912 + end: 15916 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15961 + end: 15965 + kind: Read + - name: + inner: 21 + span: + start: 15924 + end: 15927 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 15974 + end: 15977 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 15953 + end: 15960 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 15961 + end: 15965 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 15974 + end: 15977 + ty: 9 + span: + start: 15953 + end: 15985 + ty: 9 + span: + start: 15943 + end: 15998 + - id: 288 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 82 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 24 + span: + start: 16042 + end: 16045 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: + inner: 9 + span: + start: 16052 + end: 16056 + - mut_span: ~ + name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: + inner: 9 + span: + start: 16063 + end: 16067 + result: + inner: 9 + span: + start: 16072 + end: 16076 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16077 + end: 16132 + locals: + - name: + inner: 19 + span: + start: 16046 + end: 16050 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16095 + end: 16099 + kind: Read + - name: + inner: 21 + span: + start: 16058 + end: 16061 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16108 + end: 16111 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 16087 + end: 16094 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16095 + end: 16099 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16108 + end: 16111 + ty: 9 + span: + start: 16087 + end: 16119 + ty: 9 + span: + start: 16077 + end: 16132 + - id: 290 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 83 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 27 + span: + start: 16176 + end: 16179 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: + inner: 9 + span: + start: 16186 + end: 16190 + - mut_span: ~ + name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: + inner: 9 + span: + start: 16197 + end: 16201 + result: + inner: 9 + span: + start: 16206 + end: 16210 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16211 + end: 16266 + locals: + - name: + inner: 19 + span: + start: 16180 + end: 16184 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16229 + end: 16233 + kind: Read + - name: + inner: 21 + span: + start: 16192 + end: 16195 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16242 + end: 16245 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 16221 + end: 16228 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16229 + end: 16233 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16242 + end: 16245 + ty: 9 + span: + start: 16221 + end: 16253 + ty: 9 + span: + start: 16211 + end: 16266 + - id: 292 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 84 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 30 + span: + start: 16310 + end: 16313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: + inner: 9 + span: + start: 16320 + end: 16324 + - mut_span: ~ + name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: + inner: 9 + span: + start: 16331 + end: 16335 + result: + inner: 9 + span: + start: 16340 + end: 16344 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16345 + end: 16400 + locals: + - name: + inner: 19 + span: + start: 16314 + end: 16318 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16363 + end: 16367 + kind: Read + - name: + inner: 21 + span: + start: 16326 + end: 16329 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16376 + end: 16379 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 76 + ty: 208 + span: + start: 16355 + end: 16362 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16363 + end: 16367 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16376 + end: 16379 + ty: 9 + span: + start: 16355 + end: 16387 + ty: 9 + span: + start: 16345 + end: 16400 + - id: 294 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 85 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 33 + span: + start: 16444 + end: 16447 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: + inner: 9 + span: + start: 16454 + end: 16458 + - mut_span: ~ + name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: + inner: 9 + span: + start: 16465 + end: 16469 + result: + inner: 9 + span: + start: 16474 + end: 16478 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16479 + end: 16534 + locals: + - name: + inner: 19 + span: + start: 16448 + end: 16452 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16497 + end: 16501 + kind: Read + - name: + inner: 21 + span: + start: 16460 + end: 16463 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16510 + end: 16513 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 82 + ty: 209 + span: + start: 16489 + end: 16496 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16497 + end: 16501 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16510 + end: 16513 + ty: 9 + span: + start: 16489 + end: 16521 + ty: 9 + span: + start: 16479 + end: 16534 + - id: 296 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 86 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 36 + span: + start: 16578 + end: 16581 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: + inner: 9 + span: + start: 16588 + end: 16592 + result: + inner: 9 + span: + start: 16597 + end: 16601 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16602 + end: 16633 + locals: + - name: + inner: 19 + span: + start: 16582 + end: 16586 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16612 + end: 16616 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 60 + ty: 210 + span: + start: 16604 + end: 16611 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16612 + end: 16616 + ty: 9 + span: + start: 16604 + end: 16624 + ty: 9 + span: + start: 16602 + end: 16633 + - id: 298 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 87 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 39 + span: + start: 16680 + end: 16686 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: + inner: 9 + span: + start: 16693 + end: 16697 + - mut_span: ~ + name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: + inner: 9 + span: + start: 16704 + end: 16708 + result: + inner: 9 + span: + start: 16713 + end: 16717 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16718 + end: 16776 + locals: + - name: + inner: 19 + span: + start: 16687 + end: 16691 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16739 + end: 16743 + kind: Read + - name: + inner: 21 + span: + start: 16699 + end: 16702 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16752 + end: 16755 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 16728 + end: 16738 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16739 + end: 16743 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16752 + end: 16755 + ty: 9 + span: + start: 16728 + end: 16763 + ty: 9 + span: + start: 16718 + end: 16776 + - id: 300 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 88 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 42 + span: + start: 16822 + end: 16827 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: + inner: 9 + span: + start: 16834 + end: 16838 + - mut_span: ~ + name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: + inner: 9 + span: + start: 16845 + end: 16849 + result: + inner: 9 + span: + start: 16854 + end: 16858 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 16859 + end: 16916 + locals: + - name: + inner: 19 + span: + start: 16828 + end: 16832 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16879 + end: 16883 + kind: Read + - name: + inner: 21 + span: + start: 16840 + end: 16843 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 16892 + end: 16895 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 16869 + end: 16878 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 16879 + end: 16883 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 16892 + end: 16895 + ty: 9 + span: + start: 16869 + end: 16903 + ty: 9 + span: + start: 16859 + end: 16916 + - id: 302 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 89 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 45 + span: + start: 16963 + end: 16969 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: + inner: 9 + span: + start: 16976 + end: 16980 + - mut_span: ~ + name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: + inner: 9 + span: + start: 16987 + end: 16991 + result: + inner: 9 + span: + start: 16996 + end: 17000 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17001 + end: 17059 + locals: + - name: + inner: 19 + span: + start: 16970 + end: 16974 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17022 + end: 17026 + kind: Read + - name: + inner: 21 + span: + start: 16982 + end: 16985 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17035 + end: 17038 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 17011 + end: 17021 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17022 + end: 17026 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17035 + end: 17038 + ty: 9 + span: + start: 17011 + end: 17046 + ty: 9 + span: + start: 17001 + end: 17059 + - id: 304 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 90 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 48 + span: + start: 17103 + end: 17106 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: + inner: 9 + span: + start: 17113 + end: 17117 + - mut_span: ~ + name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: + inner: 9 + span: + start: 17124 + end: 17128 + result: + inner: 9 + span: + start: 17133 + end: 17137 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17138 + end: 17193 + locals: + - name: + inner: 19 + span: + start: 17107 + end: 17111 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17156 + end: 17160 + kind: Read + - name: + inner: 21 + span: + start: 17119 + end: 17122 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17169 + end: 17172 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 17148 + end: 17155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17156 + end: 17160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17169 + end: 17172 + ty: 9 + span: + start: 17148 + end: 17180 + ty: 9 + span: + start: 17138 + end: 17193 + - id: 306 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 91 + inherited_type_param_count: 0 + signature_index: 128 + name: + inner: 51 + span: + start: 17237 + end: 17240 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: + inner: 9 + span: + start: 17247 + end: 17251 + - mut_span: ~ + name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: + inner: 9 + span: + start: 17258 + end: 17262 + result: + inner: 9 + span: + start: 17267 + end: 17271 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17272 + end: 17327 + locals: + - name: + inner: 19 + span: + start: 17241 + end: 17245 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17290 + end: 17294 + kind: Read + - name: + inner: 21 + span: + start: 17253 + end: 17256 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17303 + end: 17306 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 94 + ty: 215 + span: + start: 17282 + end: 17289 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17290 + end: 17294 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17303 + end: 17306 + ty: 9 + span: + start: 17282 + end: 17314 + ty: 9 + span: + start: 17272 + end: 17327 + - id: 308 + file_id: 0 + namespace: 0 + parent: + Impl: 9 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 92 + inherited_type_param_count: 0 + signature_index: 129 + name: + inner: 54 + span: + start: 17374 + end: 17380 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: + inner: 9 + span: + start: 17387 + end: 17391 + result: + inner: 9 + span: + start: 17396 + end: 17400 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17401 + end: 17435 + locals: + - name: + inner: 19 + span: + start: 17381 + end: 17385 + ty: 9 + mut_span: ~ + accesses: + - span: + start: 17414 + end: 17418 + kind: Read + inferred_type: 9 + expected_type: 9 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 17403 + end: 17413 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17414 + end: 17418 + ty: 9 + span: + start: 17403 + end: 17426 + ty: 9 + span: + start: 17401 + end: 17435 + - id: 310 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 93 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 18 + span: + start: 17479 + end: 17482 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: + inner: 8 + span: + start: 17489 + end: 17493 + - mut_span: ~ + name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: + inner: 8 + span: + start: 17500 + end: 17504 + result: + inner: 8 + span: + start: 17509 + end: 17513 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17514 + end: 17569 + locals: + - name: + inner: 19 + span: + start: 17483 + end: 17487 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17532 + end: 17536 + kind: Read + - name: + inner: 21 + span: + start: 17495 + end: 17498 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17545 + end: 17548 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 64 + ty: 205 + span: + start: 17524 + end: 17531 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17532 + end: 17536 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17545 + end: 17548 + ty: 8 + span: + start: 17524 + end: 17556 + ty: 8 + span: + start: 17514 + end: 17569 + - id: 312 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 94 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 24 + span: + start: 17613 + end: 17616 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: + inner: 8 + span: + start: 17623 + end: 17627 + - mut_span: ~ + name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: + inner: 8 + span: + start: 17634 + end: 17638 + result: + inner: 8 + span: + start: 17643 + end: 17647 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17648 + end: 17703 + locals: + - name: + inner: 19 + span: + start: 17617 + end: 17621 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17666 + end: 17670 + kind: Read + - name: + inner: 21 + span: + start: 17629 + end: 17632 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17679 + end: 17682 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 68 + ty: 206 + span: + start: 17658 + end: 17665 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17666 + end: 17670 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17679 + end: 17682 + ty: 8 + span: + start: 17658 + end: 17690 + ty: 8 + span: + start: 17648 + end: 17703 + - id: 314 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 95 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 27 + span: + start: 17747 + end: 17750 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: + inner: 8 + span: + start: 17757 + end: 17761 + - mut_span: ~ + name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: + inner: 8 + span: + start: 17768 + end: 17772 + result: + inner: 8 + span: + start: 17777 + end: 17781 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17782 + end: 17837 + locals: + - name: + inner: 19 + span: + start: 17751 + end: 17755 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17800 + end: 17804 + kind: Read + - name: + inner: 21 + span: + start: 17763 + end: 17766 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17813 + end: 17816 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 72 + ty: 207 + span: + start: 17792 + end: 17799 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 17800 + end: 17804 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 17813 + end: 17816 + ty: 8 + span: + start: 17792 + end: 17824 + ty: 8 + span: + start: 17782 + end: 17837 + - id: 316 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 96 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 30 + span: + start: 17881 + end: 17884 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: + inner: 8 + span: + start: 17891 + end: 17895 + - mut_span: ~ + name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: + inner: 8 + span: + start: 17902 + end: 17906 + result: + inner: 8 + span: + start: 17911 + end: 17915 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 17916 + end: 17971 + locals: + - name: + inner: 19 + span: + start: 17885 + end: 17889 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17934 + end: 17938 + kind: Read + - name: + inner: 21 + span: + start: 17897 + end: 17900 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 17947 + end: 17950 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 77 + ty: 217 + span: + start: 17926 + end: 17933 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 17934 + end: 17938 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 17947 + end: 17950 + ty: 8 + span: + start: 17926 + end: 17958 + ty: 8 + span: + start: 17916 + end: 17971 + - id: 318 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 97 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 33 + span: + start: 18015 + end: 18018 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: + inner: 8 + span: + start: 18025 + end: 18029 + - mut_span: ~ + name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: + inner: 8 + span: + start: 18036 + end: 18040 + result: + inner: 8 + span: + start: 18045 + end: 18049 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18050 + end: 18105 + locals: + - name: + inner: 19 + span: + start: 18019 + end: 18023 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18068 + end: 18072 + kind: Read + - name: + inner: 21 + span: + start: 18031 + end: 18034 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18081 + end: 18084 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 83 + ty: 218 + span: + start: 18060 + end: 18067 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18068 + end: 18072 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18081 + end: 18084 + ty: 8 + span: + start: 18060 + end: 18092 + ty: 8 + span: + start: 18050 + end: 18105 + - id: 320 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 98 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 39 + span: + start: 18152 + end: 18158 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: + inner: 8 + span: + start: 18165 + end: 18169 + - mut_span: ~ + name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: + inner: 8 + span: + start: 18176 + end: 18180 + result: + inner: 8 + span: + start: 18185 + end: 18189 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18190 + end: 18248 + locals: + - name: + inner: 19 + span: + start: 18159 + end: 18163 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18211 + end: 18215 + kind: Read + - name: + inner: 21 + span: + start: 18171 + end: 18174 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18224 + end: 18227 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 18200 + end: 18210 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18211 + end: 18215 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18224 + end: 18227 + ty: 8 + span: + start: 18200 + end: 18235 + ty: 8 + span: + start: 18190 + end: 18248 + - id: 322 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 99 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 42 + span: + start: 18294 + end: 18299 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: + inner: 8 + span: + start: 18306 + end: 18310 + - mut_span: ~ + name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: + inner: 8 + span: + start: 18317 + end: 18321 + result: + inner: 8 + span: + start: 18326 + end: 18330 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18331 + end: 18388 + locals: + - name: + inner: 19 + span: + start: 18300 + end: 18304 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18351 + end: 18355 + kind: Read + - name: + inner: 21 + span: + start: 18312 + end: 18315 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18364 + end: 18367 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 18341 + end: 18350 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18351 + end: 18355 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18364 + end: 18367 + ty: 8 + span: + start: 18341 + end: 18375 + ty: 8 + span: + start: 18331 + end: 18388 + - id: 324 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 100 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 45 + span: + start: 18435 + end: 18441 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: + inner: 8 + span: + start: 18448 + end: 18452 + - mut_span: ~ + name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: + inner: 8 + span: + start: 18459 + end: 18463 + result: + inner: 8 + span: + start: 18468 + end: 18472 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18473 + end: 18531 + locals: + - name: + inner: 19 + span: + start: 18442 + end: 18446 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18494 + end: 18498 + kind: Read + - name: + inner: 21 + span: + start: 18454 + end: 18457 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18507 + end: 18510 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 18483 + end: 18493 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18494 + end: 18498 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18507 + end: 18510 + ty: 8 + span: + start: 18483 + end: 18518 + ty: 8 + span: + start: 18473 + end: 18531 + - id: 326 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 101 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 48 + span: + start: 18575 + end: 18578 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: + inner: 8 + span: + start: 18585 + end: 18589 + - mut_span: ~ + name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: + inner: 8 + span: + start: 18596 + end: 18600 + result: + inner: 8 + span: + start: 18605 + end: 18609 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18610 + end: 18665 + locals: + - name: + inner: 19 + span: + start: 18579 + end: 18583 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18628 + end: 18632 + kind: Read + - name: + inner: 21 + span: + start: 18591 + end: 18594 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18641 + end: 18644 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 92 + ty: 214 + span: + start: 18620 + end: 18627 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18628 + end: 18632 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 18641 + end: 18644 + ty: 8 + span: + start: 18620 + end: 18652 + ty: 8 + span: + start: 18610 + end: 18665 + - id: 328 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 102 + inherited_type_param_count: 0 + signature_index: 130 + name: + inner: 51 + span: + start: 18709 + end: 18712 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: + inner: 8 + span: + start: 18719 + end: 18723 + - mut_span: ~ + name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: + inner: 8 + span: + start: 18730 + end: 18734 + result: + inner: 8 + span: + start: 18739 + end: 18743 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18744 + end: 18799 + locals: + - name: + inner: 19 + span: + start: 18713 + end: 18717 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18762 + end: 18766 + kind: Read + - name: + inner: 21 + span: + start: 18725 + end: 18728 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18775 + end: 18778 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 95 + ty: 219 + span: + start: 18754 + end: 18761 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 18762 + end: 18766 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 10 + span: + start: 18775 + end: 18778 + ty: 8 + span: + start: 18754 + end: 18786 + ty: 8 + span: + start: 18744 + end: 18799 + - id: 330 + file_id: 0 + namespace: 0 + parent: + Impl: 8 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 103 + inherited_type_param_count: 0 + signature_index: 131 + name: + inner: 54 + span: + start: 18846 + end: 18852 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: + inner: 8 + span: + start: 18859 + end: 18863 + result: + inner: 8 + span: + start: 18868 + end: 18872 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18873 + end: 18907 + locals: + - name: + inner: 19 + span: + start: 18853 + end: 18857 + ty: 8 + mut_span: ~ + accesses: + - span: + start: 18886 + end: 18890 + kind: Read + inferred_type: 8 + expected_type: 8 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 98 + ty: 216 + span: + start: 18875 + end: 18885 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 18886 + end: 18890 + ty: 8 + span: + start: 18875 + end: 18898 + ty: 8 + span: + start: 18873 + end: 18907 + - id: 332 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 104 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 39 + span: + start: 18955 + end: 18961 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: + inner: 16 + span: + start: 18968 + end: 18972 + - mut_span: ~ + name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: + inner: 16 + span: + start: 18979 + end: 18983 + result: + inner: 16 + span: + start: 18988 + end: 18992 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 18993 + end: 19052 + locals: + - name: + inner: 19 + span: + start: 18962 + end: 18966 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19014 + end: 19018 + kind: Read + - name: + inner: 21 + span: + start: 18974 + end: 18977 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19027 + end: 19030 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 86 + ty: 211 + span: + start: 19003 + end: 19013 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19014 + end: 19018 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19027 + end: 19030 + ty: 16 + span: + start: 19003 + end: 19038 + ty: 16 + span: + start: 18993 + end: 19052 + - id: 334 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 105 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 42 + span: + start: 19099 + end: 19104 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: + inner: 16 + span: + start: 19111 + end: 19115 + - mut_span: ~ + name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: + inner: 16 + span: + start: 19122 + end: 19126 + result: + inner: 16 + span: + start: 19131 + end: 19135 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19136 + end: 19194 + locals: + - name: + inner: 19 + span: + start: 19105 + end: 19109 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19156 + end: 19160 + kind: Read + - name: + inner: 21 + span: + start: 19117 + end: 19120 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19169 + end: 19172 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 88 + ty: 212 + span: + start: 19146 + end: 19155 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19156 + end: 19160 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19169 + end: 19172 + ty: 16 + span: + start: 19146 + end: 19180 + ty: 16 + span: + start: 19136 + end: 19194 + - id: 336 + file_id: 0 + namespace: 0 + parent: + Impl: 16 + pub_span: ~ + type_params: [] + type_param_parent: + TraitImpl: 106 + inherited_type_param_count: 0 + signature_index: 132 + name: + inner: 45 + span: + start: 19242 + end: 19248 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: + inner: 16 + span: + start: 19255 + end: 19259 + - mut_span: ~ + name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: + inner: 16 + span: + start: 19266 + end: 19270 + result: + inner: 16 + span: + start: 19275 + end: 19279 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 19280 + end: 19339 + locals: + - name: + inner: 19 + span: + start: 19249 + end: 19253 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19301 + end: 19305 + kind: Read + - name: + inner: 21 + span: + start: 19261 + end: 19264 + ty: 16 + mut_span: ~ + accesses: + - span: + start: 19314 + end: 19317 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Call: + callee: + kind: + Function: + id: 90 + ty: 213 + span: + start: 19290 + end: 19300 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 11 + span: + start: 19301 + end: 19305 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 11 + span: + start: 19314 + end: 19317 + ty: 16 + span: + start: 19290 + end: 19325 + ty: 16 + span: + start: 19280 + end: 19339 + - id: 367 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20500 + end: 20503 + type_params: + - name: + inner: 65 + span: + start: 20510 + end: 20511 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20557 + end: 20558 + - file_id: 0 + span: + start: 20581 + end: 20582 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 137 + name: + inner: 169 + span: + start: 20507 + end: 20509 + params: [] + result: + inner: 136 + span: + start: 20518 + end: 20522 + accesses: + - file_id: 0 + span: + start: 20992 + end: 20994 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20523 + end: 20593 + locals: [] + inferred_type: 136 + expected_type: 136 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + GenericCall: + id: 43 + type_args: + - 247 + - 135 + arguments: [] + ty: 138 + span: + start: 20547 + end: 20561 + - kind: + GenericCall: + id: 44 + type_args: + - 247 + - 135 + arguments: [] + ty: 138 + span: + start: 20570 + end: 20585 + ty: 136 + span: + start: 20533 + end: 20587 + ty: 136 + span: + start: 20523 + end: 20593 + - id: 368 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 2 + pub_span: + start: 20613 + end: 20616 + type_params: + - name: + inner: 65 + span: + start: 20626 + end: 20627 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20691 + end: 20692 + - file_id: 0 + span: + start: 20713 + end: 20714 + type_param_parent: + ImplBlock: 2 + inherited_type_param_count: 1 + signature_index: 139 + name: + inner: 170 + span: + start: 20620 + end: 20625 + params: + - mut_span: ~ + name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: + inner: 138 + span: + start: 20636 + end: 20645 + result: + inner: 136 + span: + start: 20650 + end: 20654 + accesses: + - file_id: 0 + span: + start: 21225 + end: 21230 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20655 + end: 20733 + locals: + - name: + inner: 171 + span: + start: 20629 + end: 20634 + ty: 138 + mut_span: ~ + accesses: + - span: + start: 20720 + end: 20725 + kind: Read + inferred_type: 136 + expected_type: 136 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + StructInit: + struct_index: 0 + fields: + - kind: + Binary: + operator: + inner: Mul + span: + start: 20718 + end: 20719 + left: + kind: + GenericCall: + id: 43 + type_args: + - 250 + - 135 + arguments: [] + ty: 138 + span: + start: 20703 + end: 20717 + right: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 138 + span: + start: 20720 + end: 20725 + ty: 138 + span: + start: 20703 + end: 20725 + - kind: + GenericCall: + id: 44 + type_args: + - 250 + - 135 + arguments: [] + ty: 138 + span: + start: 20680 + end: 20695 + ty: 136 + span: + start: 20665 + end: 20727 + ty: 136 + span: + start: 20655 + end: 20733 + - id: 371 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: [] + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 152 + name: + inner: 173 + span: + start: 20789 + end: 20796 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20797 + end: 20801 + ty: + inner: 142 + span: + start: 20803 + end: 20819 + - mut_span: ~ + name: + inner: 174 + span: + start: 20821 + end: 20827 + ty: + inner: 150 + span: + start: 20829 + end: 20846 + result: + inner: 151 + span: + start: 20851 + end: 20865 + accesses: + - file_id: 0 + span: + start: 20976 + end: 20983 + - file_id: 0 + span: + start: 21209 + end: 21216 + attributes: [] + body: ~ + - id: 372 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 20895 + end: 20896 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20929 + end: 20930 + - file_id: 0 + span: + start: 20947 + end: 20948 + - file_id: 0 + span: + start: 21018 + end: 21019 + - file_id: 0 + span: + start: 20997 + end: 20998 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 145 + name: + inner: 175 + span: + start: 20889 + end: 20894 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: + inner: 142 + span: + start: 20904 + end: 20920 + - mut_span: ~ + name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: + inner: 143 + span: + start: 20929 + end: 20930 + result: + inner: 144 + span: + start: 20935 + end: 20948 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 20949 + end: 21061 + locals: + - name: + inner: 19 + span: + start: 20898 + end: 20902 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 20971 + end: 20975 + kind: Read + - name: + inner: 82 + span: + start: 20922 + end: 20927 + ty: 143 + mut_span: ~ + accesses: + - span: + start: 21037 + end: 21042 + kind: Read + - name: + inner: 176 + span: + start: 20965 + end: 20968 + ty: 144 + mut_span: ~ + accesses: + - span: + start: 21029 + end: 21032 + kind: Read + - span: + start: 21052 + end: 21055 + kind: Read + inferred_type: 144 + expected_type: 144 + block: + kind: + Block: + scope_index: 0 + expressions: + - kind: + LocalDeclaration: + name: + inner: 176 + span: + start: 20965 + end: 20968 + scope_index: 0 + local_index: 2 + value: + kind: + GenericMethodCall: + id: 371 + type_args: + - 140 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 142 + span: + start: 20971 + end: 20975 + - kind: + GenericCall: + id: 367 + type_args: + - 141 + - 143 + arguments: [] + ty: 150 + span: + start: 20984 + end: 21001 + ty: 144 + span: + start: 20971 + end: 21002 + ty: 2 + span: + start: 20959 + end: 21019 + - kind: + Store: + target: + kind: + Deref: + pointer: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 144 + span: + start: 21029 + end: 21032 + ty: 143 + memory: 141 + mutable: true + span: + start: 21029 + end: 21034 + value: + kind: + Local: + scope_index: 0 + local_index: 1 + ty: 143 + span: + start: 21037 + end: 21042 + ty: 2 + span: + start: 21029 + end: 21042 + result: + kind: + Local: + scope_index: 0 + local_index: 2 + ty: 144 + span: + start: 21052 + end: 21055 + ty: 144 + span: + start: 20949 + end: 21061 + - id: 373 + file_id: 0 + namespace: 0 + parent: + Trait: 15 + pub_span: ~ + type_params: + - name: + inner: 65 + span: + start: 21096 + end: 21097 + bounds: + traits: [] + typeset: ~ + accesses: + - file_id: 0 + span: + start: 21161 + end: 21162 + - file_id: 0 + span: + start: 21257 + end: 21258 + - file_id: 0 + span: + start: 21233 + end: 21234 + type_param_parent: + Trait: 15 + inherited_type_param_count: 1 + signature_index: 149 + name: + inner: 177 + span: + start: 21084 + end: 21095 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: + inner: 142 + span: + start: 21105 + end: 21121 + - mut_span: ~ + name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: + inner: 146 + span: + start: 21128 + end: 21143 + result: + inner: 148 + span: + start: 21148 + end: 21163 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 21164 + end: 21297 + locals: + - name: + inner: 19 + span: + start: 21099 + end: 21103 + ty: 142 + mut_span: ~ + accesses: + - span: + start: 21204 + end: 21208 + kind: Read + - name: + inner: 70 + span: + start: 21123 + end: 21126 + ty: 146 + mut_span: ~ + accesses: + - span: + start: 21236 + end: 21239 + kind: Read + - span: + start: 21272 + end: 21275 + kind: Read + inferred_type: 148 + expected_type: 148 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 42 + type_args: + - 141 + - 147 + arguments: + - kind: + GenericMethodCall: + id: 371 + type_args: + - 140 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 142 + span: + start: 21204 + end: 21208 + - kind: + GenericCall: + id: 368 + type_args: + - 141 + - 147 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 146 + span: + start: 21236 + end: 21239 + ty: 150 + span: + start: 21217 + end: 21240 + ty: 256 + span: + start: 21204 + end: 21241 + - kind: + Local: + scope_index: 0 + local_index: 1 + ty: 146 + span: + start: 21272 + end: 21275 + ty: 148 + span: + start: 21174 + end: 21286 + ty: 148 + span: + start: 21164 + end: 21297 + - id: 384 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22634 + end: 22637 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 197 + name: + inner: 70 + span: + start: 22641 + end: 22644 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: + inner: 195 + span: + start: 22645 + end: 22649 + result: + inner: 196 + span: + start: 22654 + end: 22663 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22664 + end: 22695 + locals: + - name: + inner: 19 + span: + start: 22645 + end: 22649 + ty: 195 + mut_span: ~ + accesses: + - span: + start: 22684 + end: 22688 + kind: Read + inferred_type: 196 + expected_type: 196 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 40 + type_args: + - 193 + - 194 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 195 + span: + start: 22684 + end: 22688 + ty: 196 + span: + start: 22674 + end: 22689 + ty: 196 + span: + start: 22664 + end: 22695 + - id: 385 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 3 + pub_span: + start: 22715 + end: 22718 + type_params: [] + type_param_parent: + ImplBlock: 3 + inherited_type_param_count: 2 + signature_index: 199 + name: + inner: 176 + span: + start: 22722 + end: 22725 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: + inner: 195 + span: + start: 22726 + end: 22730 + result: + inner: 198 + span: + start: 22735 + end: 22742 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22743 + end: 22774 + locals: + - name: + inner: 19 + span: + start: 22726 + end: 22730 + ty: 195 + mut_span: ~ + accesses: + - span: + start: 22763 + end: 22767 + kind: Read + inferred_type: 198 + expected_type: 198 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + GenericCall: + id: 41 + type_args: + - 193 + - 194 + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 195 + span: + start: 22763 + end: 22767 + ty: 198 + span: + start: 22753 + end: 22768 + ty: 198 + span: + start: 22743 + end: 22774 + - id: 388 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 22850 + end: 22853 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 189 + span: + start: 22857 + end: 22875 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: + inner: 17 + span: + start: 22876 + end: 22880 + result: + inner: 17 + span: + start: 22885 + end: 22889 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 22890 + end: 23033 + locals: + - name: + inner: 19 + span: + start: 22876 + end: 22880 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 22903 + end: 22907 + kind: Read + - span: + start: 22945 + end: 22949 + kind: Read + - span: + start: 23013 + end: 23017 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22929 + end: 22993 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 22999 + end: 23027 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 22903 + end: 22907 + id: 392 + ty: 16 + span: + start: 22903 + end: 22928 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 22957 + end: 22958 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 22945 + end: 22949 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 22959 + end: 22974 + ty: 17 + span: + start: 22944 + end: 22974 + ty: 17 + span: + start: 22929 + end: 22993 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23013 + end: 23017 + ty: 17 + span: + start: 22999 + end: 23027 + ty: 17 + span: + start: 22900 + end: 23027 + ty: 17 + span: + start: 22890 + end: 23033 + - id: 389 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23053 + end: 23056 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 200 + name: + inner: 191 + span: + start: 23060 + end: 23078 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: + inner: 17 + span: + start: 23079 + end: 23083 + result: + inner: 17 + span: + start: 23088 + end: 23092 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23093 + end: 23236 + locals: + - name: + inner: 19 + span: + start: 23079 + end: 23083 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23106 + end: 23110 + kind: Read + - span: + start: 23148 + end: 23152 + kind: Read + - span: + start: 23216 + end: 23220 + kind: Read + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23132 + end: 23196 + locals: [] + inferred_type: 17 + expected_type: 17 + - kind: Block + label: ~ + parent: 0 + span: + start: 23202 + end: 23230 + locals: [] + inferred_type: 17 + expected_type: 17 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + IfElse: + condition: + kind: + MethodCall: + arguments: + - kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23106 + end: 23110 + id: 391 + ty: 16 + span: + start: 23106 + end: 23131 + then_block: + kind: + Block: + scope_index: 1 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitXor + span: + start: 23160 + end: 23161 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 6 + span: + start: 23148 + end: 23152 + right: + kind: + Const: + id: 387 + ty: 6 + span: + start: 23162 + end: 23177 + ty: 17 + span: + start: 23147 + end: 23177 + ty: 17 + span: + start: 23132 + end: 23196 + else_block: + kind: + Block: + scope_index: 2 + expressions: [] + result: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23216 + end: 23220 + ty: 17 + span: + start: 23202 + end: 23230 + ty: 17 + span: + start: 23103 + end: 23230 + ty: 17 + span: + start: 23093 + end: 23236 + - id: 390 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23256 + end: 23259 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 193 + span: + start: 23263 + end: 23271 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: + inner: 17 + span: + start: 23272 + end: 23276 + result: + inner: 16 + span: + start: 23281 + end: 23285 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23286 + end: 23323 + locals: + - name: + inner: 19 + span: + start: 23272 + end: 23276 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23297 + end: 23301 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23310 + end: 23312 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 23297 + end: 23301 + right: + kind: + Int: + value: 127 + ty: 10 + span: + start: 23313 + end: 23317 + ty: 16 + span: + start: 23296 + end: 23317 + ty: 16 + span: + start: 23286 + end: 23323 + - id: 391 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23343 + end: 23346 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 192 + span: + start: 23350 + end: 23368 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: + inner: 17 + span: + start: 23369 + end: 23373 + result: + inner: 16 + span: + start: 23378 + end: 23382 + accesses: + - file_id: 0 + span: + start: 23111 + end: 23129 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23383 + end: 23425 + locals: + - name: + inner: 19 + span: + start: 23369 + end: 23373 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23393 + end: 23397 + kind: Read + - span: + start: 23408 + end: 23412 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23405 + end: 23407 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23398 + end: 23400 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23393 + end: 23397 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23401 + end: 23404 + ty: 16 + span: + start: 23393 + end: 23404 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23413 + end: 23415 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23408 + end: 23412 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23416 + end: 23419 + ty: 16 + span: + start: 23408 + end: 23419 + ty: 16 + span: + start: 23393 + end: 23419 + ty: 16 + span: + start: 23383 + end: 23425 + - id: 392 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23445 + end: 23448 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 190 + span: + start: 23452 + end: 23470 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: + inner: 17 + span: + start: 23471 + end: 23475 + result: + inner: 16 + span: + start: 23480 + end: 23484 + accesses: + - file_id: 0 + span: + start: 22908 + end: 22926 + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23485 + end: 23527 + locals: + - name: + inner: 19 + span: + start: 23471 + end: 23475 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23495 + end: 23499 + kind: Read + - span: + start: 23510 + end: 23514 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23507 + end: 23509 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23500 + end: 23502 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23495 + end: 23499 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23503 + end: 23506 + ty: 16 + span: + start: 23495 + end: 23506 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23515 + end: 23517 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23510 + end: 23514 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23518 + end: 23521 + ty: 16 + span: + start: 23510 + end: 23521 + ty: 16 + span: + start: 23495 + end: 23521 + ty: 16 + span: + start: 23485 + end: 23527 + - id: 393 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23547 + end: 23550 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 194 + span: + start: 23554 + end: 23573 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: + inner: 17 + span: + start: 23574 + end: 23578 + result: + inner: 16 + span: + start: 23583 + end: 23587 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23588 + end: 23663 + locals: + - name: + inner: 19 + span: + start: 23574 + end: 23578 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23599 + end: 23603 + kind: Read + - span: + start: 23614 + end: 23618 + kind: Read + - span: + start: 23630 + end: 23634 + kind: Read + - span: + start: 23645 + end: 23649 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23627 + end: 23628 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23611 + end: 23613 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23604 + end: 23606 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23599 + end: 23603 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23607 + end: 23610 + ty: 16 + span: + start: 23599 + end: 23610 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23619 + end: 23621 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23614 + end: 23618 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23622 + end: 23625 + ty: 16 + span: + start: 23614 + end: 23625 + ty: 16 + span: + start: 23599 + end: 23625 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23642 + end: 23644 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23635 + end: 23637 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23630 + end: 23634 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23638 + end: 23641 + ty: 16 + span: + start: 23630 + end: 23641 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23650 + end: 23652 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23645 + end: 23649 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23653 + end: 23656 + ty: 16 + span: + start: 23645 + end: 23656 + ty: 16 + span: + start: 23630 + end: 23656 + ty: 16 + span: + start: 23598 + end: 23657 + ty: 16 + span: + start: 23588 + end: 23663 + - id: 394 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23683 + end: 23686 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 195 + span: + start: 23690 + end: 23704 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: + inner: 17 + span: + start: 23705 + end: 23709 + result: + inner: 16 + span: + start: 23714 + end: 23718 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23719 + end: 23761 + locals: + - name: + inner: 19 + span: + start: 23705 + end: 23709 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23729 + end: 23733 + kind: Read + - span: + start: 23744 + end: 23748 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 23741 + end: 23743 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23734 + end: 23736 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23729 + end: 23733 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23737 + end: 23740 + ty: 16 + span: + start: 23729 + end: 23740 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23749 + end: 23751 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23744 + end: 23748 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23752 + end: 23755 + ty: 16 + span: + start: 23744 + end: 23755 + ty: 16 + span: + start: 23729 + end: 23755 + ty: 16 + span: + start: 23719 + end: 23761 + - id: 395 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23781 + end: 23784 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 196 + span: + start: 23788 + end: 23809 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: + inner: 17 + span: + start: 23810 + end: 23814 + result: + inner: 16 + span: + start: 23819 + end: 23823 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 23824 + end: 23954 + locals: + - name: + inner: 19 + span: + start: 23810 + end: 23814 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 23835 + end: 23839 + kind: Read + - span: + start: 23850 + end: 23854 + kind: Read + - span: + start: 23878 + end: 23882 + kind: Read + - span: + start: 23893 + end: 23897 + kind: Read + - span: + start: 23921 + end: 23925 + kind: Read + - span: + start: 23936 + end: 23940 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23918 + end: 23919 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 23875 + end: 23876 + left: + kind: + Binary: + operator: + inner: And + span: + start: 23847 + end: 23849 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23840 + end: 23842 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23835 + end: 23839 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 23843 + end: 23846 + ty: 16 + span: + start: 23835 + end: 23846 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23855 + end: 23857 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23850 + end: 23854 + right: + kind: + Char: + value: Z + ty: 17 + span: + start: 23858 + end: 23861 + ty: 16 + span: + start: 23850 + end: 23861 + ty: 16 + span: + start: 23835 + end: 23861 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23890 + end: 23892 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23883 + end: 23885 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23878 + end: 23882 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 23886 + end: 23889 + ty: 16 + span: + start: 23878 + end: 23889 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23898 + end: 23900 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23893 + end: 23897 + right: + kind: + Char: + value: z + ty: 17 + span: + start: 23901 + end: 23904 + ty: 16 + span: + start: 23893 + end: 23904 + ty: 16 + span: + start: 23878 + end: 23904 + ty: 16 + span: + start: 23834 + end: 23905 + right: + kind: + Binary: + operator: + inner: And + span: + start: 23933 + end: 23935 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 23926 + end: 23928 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23921 + end: 23925 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 23929 + end: 23932 + ty: 16 + span: + start: 23921 + end: 23932 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 23941 + end: 23943 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 23936 + end: 23940 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 23944 + end: 23947 + ty: 16 + span: + start: 23936 + end: 23947 + ty: 16 + span: + start: 23921 + end: 23947 + ty: 16 + span: + start: 23834 + end: 23948 + ty: 16 + span: + start: 23824 + end: 23954 + - id: 396 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 23974 + end: 23977 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 197 + span: + start: 23981 + end: 24000 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: + inner: 17 + span: + start: 24001 + end: 24005 + result: + inner: 16 + span: + start: 24010 + end: 24014 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24015 + end: 24156 + locals: + - name: + inner: 19 + span: + start: 24001 + end: 24005 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24025 + end: 24029 + kind: Read + - span: + start: 24053 + end: 24057 + kind: Read + - span: + start: 24081 + end: 24085 + kind: Read + - span: + start: 24111 + end: 24115 + kind: Read + - span: + start: 24139 + end: 24143 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24136 + end: 24138 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24108 + end: 24110 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24078 + end: 24080 + left: + kind: + Binary: + operator: + inner: Or + span: + start: 24050 + end: 24052 + left: + kind: + Binary: + operator: + inner: Eq + span: + start: 24030 + end: 24032 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24025 + end: 24029 + right: + kind: + Char: + value: "\t" + ty: 17 + span: + start: 24033 + end: 24037 + ty: 16 + span: + start: 24025 + end: 24037 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24058 + end: 24060 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24053 + end: 24057 + right: + kind: + Char: + value: "\n" + ty: 17 + span: + start: 24061 + end: 24065 + ty: 16 + span: + start: 24053 + end: 24065 + ty: 16 + span: + start: 24025 + end: 24065 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24086 + end: 24088 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24081 + end: 24085 + right: + kind: + Char: + value: + ty: 17 + span: + start: 24089 + end: 24095 + ty: 16 + span: + start: 24081 + end: 24095 + ty: 16 + span: + start: 24025 + end: 24095 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24116 + end: 24118 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24111 + end: 24115 + right: + kind: + Char: + value: "\r" + ty: 17 + span: + start: 24119 + end: 24123 + ty: 16 + span: + start: 24111 + end: 24123 + ty: 16 + span: + start: 24025 + end: 24123 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24144 + end: 24146 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24139 + end: 24143 + right: + kind: + Char: + value: " " + ty: 17 + span: + start: 24147 + end: 24150 + ty: 16 + span: + start: 24139 + end: 24150 + ty: 16 + span: + start: 24025 + end: 24150 + ty: 16 + span: + start: 24015 + end: 24156 + - id: 397 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24176 + end: 24179 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 198 + span: + start: 24183 + end: 24199 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: + inner: 17 + span: + start: 24200 + end: 24204 + result: + inner: 16 + span: + start: 24209 + end: 24213 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24214 + end: 24269 + locals: + - name: + inner: 19 + span: + start: 24200 + end: 24204 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24225 + end: 24229 + kind: Read + - span: + start: 24249 + end: 24253 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: Or + span: + start: 24246 + end: 24248 + left: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24238 + end: 24240 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 10 + span: + start: 24225 + end: 24229 + right: + kind: + Int: + value: 31 + ty: 10 + span: + start: 24241 + end: 24245 + ty: 16 + span: + start: 24224 + end: 24245 + right: + kind: + Binary: + operator: + inner: Eq + span: + start: 24254 + end: 24256 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24249 + end: 24253 + right: + kind: + Char: + value:  + ty: 17 + span: + start: 24257 + end: 24263 + ty: 16 + span: + start: 24249 + end: 24263 + ty: 16 + span: + start: 24224 + end: 24263 + ty: 16 + span: + start: 24214 + end: 24269 + - id: 398 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24289 + end: 24292 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 199 + span: + start: 24296 + end: 24313 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: + inner: 17 + span: + start: 24314 + end: 24318 + result: + inner: 16 + span: + start: 24323 + end: 24327 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24328 + end: 24458 + locals: + - name: + inner: 19 + span: + start: 24314 + end: 24318 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24339 + end: 24343 + kind: Read + - span: + start: 24354 + end: 24358 + kind: Read + - span: + start: 24382 + end: 24386 + kind: Read + - span: + start: 24397 + end: 24401 + kind: Read + - span: + start: 24425 + end: 24429 + kind: Read + - span: + start: 24440 + end: 24444 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24422 + end: 24423 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24379 + end: 24380 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24351 + end: 24353 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24344 + end: 24346 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24339 + end: 24343 + right: + kind: + Char: + value: "0" + ty: 17 + span: + start: 24347 + end: 24350 + ty: 16 + span: + start: 24339 + end: 24350 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24359 + end: 24361 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24354 + end: 24358 + right: + kind: + Char: + value: "9" + ty: 17 + span: + start: 24362 + end: 24365 + ty: 16 + span: + start: 24354 + end: 24365 + ty: 16 + span: + start: 24339 + end: 24365 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24394 + end: 24396 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24387 + end: 24389 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24382 + end: 24386 + right: + kind: + Char: + value: A + ty: 17 + span: + start: 24390 + end: 24393 + ty: 16 + span: + start: 24382 + end: 24393 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24402 + end: 24404 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24397 + end: 24401 + right: + kind: + Char: + value: F + ty: 17 + span: + start: 24405 + end: 24408 + ty: 16 + span: + start: 24397 + end: 24408 + ty: 16 + span: + start: 24382 + end: 24408 + ty: 16 + span: + start: 24338 + end: 24409 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24437 + end: 24439 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24430 + end: 24432 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24425 + end: 24429 + right: + kind: + Char: + value: a + ty: 17 + span: + start: 24433 + end: 24436 + ty: 16 + span: + start: 24425 + end: 24436 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24445 + end: 24447 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24440 + end: 24444 + right: + kind: + Char: + value: f + ty: 17 + span: + start: 24448 + end: 24451 + ty: 16 + span: + start: 24440 + end: 24451 + ty: 16 + span: + start: 24425 + end: 24451 + ty: 16 + span: + start: 24338 + end: 24452 + ty: 16 + span: + start: 24328 + end: 24458 + - id: 399 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24478 + end: 24481 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 200 + span: + start: 24485 + end: 24505 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: + inner: 17 + span: + start: 24506 + end: 24510 + result: + inner: 16 + span: + start: 24515 + end: 24519 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24520 + end: 24693 + locals: + - name: + inner: 19 + span: + start: 24506 + end: 24510 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24531 + end: 24535 + kind: Read + - span: + start: 24546 + end: 24550 + kind: Read + - span: + start: 24574 + end: 24578 + kind: Read + - span: + start: 24589 + end: 24593 + kind: Read + - span: + start: 24617 + end: 24621 + kind: Read + - span: + start: 24632 + end: 24636 + kind: Read + - span: + start: 24660 + end: 24664 + kind: Read + - span: + start: 24675 + end: 24679 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24657 + end: 24658 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24614 + end: 24615 + left: + kind: + Binary: + operator: + inner: BitOr + span: + start: 24571 + end: 24572 + left: + kind: + Binary: + operator: + inner: And + span: + start: 24543 + end: 24545 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24536 + end: 24538 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24531 + end: 24535 + right: + kind: + Char: + value: "!" + ty: 17 + span: + start: 24539 + end: 24542 + ty: 16 + span: + start: 24531 + end: 24542 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24551 + end: 24553 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24546 + end: 24550 + right: + kind: + Char: + value: / + ty: 17 + span: + start: 24554 + end: 24557 + ty: 16 + span: + start: 24546 + end: 24557 + ty: 16 + span: + start: 24531 + end: 24557 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24586 + end: 24588 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24579 + end: 24581 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24574 + end: 24578 + right: + kind: + Char: + value: ":" + ty: 17 + span: + start: 24582 + end: 24585 + ty: 16 + span: + start: 24574 + end: 24585 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24594 + end: 24596 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24589 + end: 24593 + right: + kind: + Char: + value: "@" + ty: 17 + span: + start: 24597 + end: 24600 + ty: 16 + span: + start: 24589 + end: 24600 + ty: 16 + span: + start: 24574 + end: 24600 + ty: 16 + span: + start: 24530 + end: 24601 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24629 + end: 24631 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24622 + end: 24624 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24617 + end: 24621 + right: + kind: + Char: + value: "[" + ty: 17 + span: + start: 24625 + end: 24628 + ty: 16 + span: + start: 24617 + end: 24628 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24637 + end: 24639 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24632 + end: 24636 + right: + kind: + Char: + value: "`" + ty: 17 + span: + start: 24640 + end: 24643 + ty: 16 + span: + start: 24632 + end: 24643 + ty: 16 + span: + start: 24617 + end: 24643 + ty: 16 + span: + start: 24530 + end: 24644 + right: + kind: + Binary: + operator: + inner: And + span: + start: 24672 + end: 24674 + left: + kind: + Binary: + operator: + inner: GreaterEq + span: + start: 24665 + end: 24667 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24660 + end: 24664 + right: + kind: + Char: + value: "{" + ty: 17 + span: + start: 24668 + end: 24671 + ty: 16 + span: + start: 24660 + end: 24671 + right: + kind: + Binary: + operator: + inner: LessEq + span: + start: 24680 + end: 24682 + left: + kind: + Local: + scope_index: 0 + local_index: 0 + ty: 17 + span: + start: 24675 + end: 24679 + right: + kind: + Char: + value: "~" + ty: 17 + span: + start: 24683 + end: 24686 + ty: 16 + span: + start: 24675 + end: 24686 + ty: 16 + span: + start: 24660 + end: 24686 + ty: 16 + span: + start: 24530 + end: 24687 + ty: 16 + span: + start: 24520 + end: 24693 + - id: 400 + file_id: 0 + namespace: 0 + parent: + GenericImpl: 4 + pub_span: + start: 24713 + end: 24716 + type_params: [] + type_param_parent: + ImplBlock: 4 + inherited_type_param_count: 0 + signature_index: 201 + name: + inner: 201 + span: + start: 24720 + end: 24736 + params: + - mut_span: ~ + name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: + inner: 17 + span: + start: 24737 + end: 24741 + result: + inner: 16 + span: + start: 24746 + end: 24750 + accesses: [] + attributes: + - Inline + body: + stack: + labels: [] + scopes: + - kind: Block + label: ~ + parent: ~ + span: + start: 24751 + end: 24793 + locals: + - name: + inner: 19 + span: + start: 24737 + end: 24741 + ty: 17 + mut_span: ~ + accesses: + - span: + start: 24761 + end: 24765 + kind: Read + - span: + start: 24776 + end: 24780 + kind: Read + inferred_type: 16 + expected_type: 16 + block: + kind: + Block: + scope_index: 0 + expressions: [] + result: + kind: + Binary: + operator: + inner: And + span: + start: 24773 + end: 24775 + left: + kind: Binary: operator: inner: GreaterEq span: - start: 7796 - end: 7798 + start: 24766 + end: 24768 left: kind: Local: @@ -7724,28 +24608,28 @@ functions: local_index: 0 ty: 17 span: - start: 7791 - end: 7795 + start: 24761 + end: 24765 right: kind: Char: value: "!" ty: 17 span: - start: 7799 - end: 7802 + start: 24769 + end: 24772 ty: 16 span: - start: 7791 - end: 7802 + start: 24761 + end: 24772 right: kind: Binary: operator: inner: LessEq span: - start: 7811 - end: 7813 + start: 24781 + end: 24783 left: kind: Local: @@ -7753,1151 +24637,5563 @@ functions: local_index: 0 ty: 17 span: - start: 7806 - end: 7810 + start: 24776 + end: 24780 right: kind: Char: value: "~" ty: 17 span: - start: 7814 - end: 7817 + start: 24784 + end: 24787 ty: 16 span: - start: 7806 - end: 7817 + start: 24776 + end: 24787 ty: 16 span: - start: 7791 - end: 7817 - ty: 16 + start: 24761 + end: 24787 + ty: 16 + span: + start: 24751 + end: 24793 +globals: [] +memories: [] +namespaces: + - name: 0 + parent: ~ + declaration: + Crate: + - 0 + - 0 + symbols: + ? - Type + - 2 + : TypeAlias: + type_alias_index: 0 + ? - Type + - 3 + : TypeAlias: + type_alias_index: 1 + ? - Type + - 4 + : TypeAlias: + type_alias_index: 2 + ? - Type + - 5 + : TypeAlias: + type_alias_index: 3 + ? - Type + - 6 + : TypeAlias: + type_alias_index: 4 + ? - Type + - 7 + : TypeAlias: + type_alias_index: 5 + ? - Type + - 8 + : TypeAlias: + type_alias_index: 6 + ? - Type + - 9 + : TypeAlias: + type_alias_index: 7 + ? - Type + - 10 + : TypeAlias: + type_alias_index: 8 + ? - Type + - 11 + : TypeAlias: + type_alias_index: 9 + ? - Type + - 12 + : TypeAlias: + type_alias_index: 10 + ? - Type + - 13 + : TypeAlias: + type_alias_index: 11 + ? - Type + - 14 + : TypeAlias: + type_alias_index: 12 + ? - Type + - 17 + : Trait: + trait_index: 0 + ? - Type + - 23 + : Trait: + trait_index: 1 + ? - Type + - 26 + : Trait: + trait_index: 2 + ? - Type + - 29 + : Trait: + trait_index: 3 + ? - Type + - 32 + : Trait: + trait_index: 4 + ? - Type + - 35 + : Trait: + trait_index: 5 + ? - Type + - 38 + : Trait: + trait_index: 6 + ? - Type + - 41 + : Trait: + trait_index: 7 + ? - Type + - 44 + : Trait: + trait_index: 8 + ? - Type + - 47 + : Trait: + trait_index: 9 + ? - Type + - 50 + : Trait: + trait_index: 10 + ? - Type + - 53 + : Trait: + trait_index: 11 + ? - Type + - 57 + : TraitAssocType: + trait_index: 15 + assoc_name: 57 + ? - Type + - 58 + : Trait: + trait_index: 14 + ? - Type + - 61 + : TraitAssocType: + trait_index: 14 + assoc_name: 61 + ? - Type + - 62 + : TraitAssocType: + trait_index: 12 + assoc_name: 62 + ? - Type + - 77 + : TypeSet: + typeset_index: 1 + ? - Type + - 158 + : TypeSet: + typeset_index: 0 + ? - Type + - 159 + : Trait: + trait_index: 12 + ? - Type + - 160 + : Trait: + trait_index: 13 + ? - Type + - 161 + : TraitAssocType: + trait_index: 13 + assoc_name: 161 + ? - Type + - 167 + : Struct: + struct_index: 0 + ? - Type + - 172 + : Trait: + trait_index: 15 + ? - Type + - 176 + : Module: + namespace_idx: 1 + ? - Value + - 55 + : Const: + const_index: 0 + ? - Value + - 56 + : Function: + func_index: 0 + ? - Value + - 63 + : Function: + func_index: 1 + ? - Value + - 64 + : Function: + func_index: 2 + ? - Value + - 67 + : Function: + func_index: 3 + ? - Value + - 68 + : Function: + func_index: 4 + ? - Value + - 71 + : Function: + func_index: 5 + ? - Value + - 72 + : Function: + func_index: 6 + ? - Value + - 73 + : Function: + func_index: 7 + ? - Value + - 76 + : Function: + func_index: 8 + ? - Value + - 81 + : Function: + func_index: 9 + ? - Value + - 83 + : Function: + func_index: 10 + ? - Value + - 84 + : Function: + func_index: 11 + ? - Value + - 85 + : Function: + func_index: 12 + ? - Value + - 86 + : Function: + func_index: 13 + ? - Value + - 87 + : Function: + func_index: 14 + ? - Value + - 88 + : Function: + func_index: 15 + ? - Value + - 89 + : Function: + func_index: 16 + ? - Value + - 90 + : Function: + func_index: 17 + ? - Value + - 91 + : Function: + func_index: 18 + ? - Value + - 92 + : Function: + func_index: 19 + ? - Value + - 93 + : Function: + func_index: 20 + ? - Value + - 94 + : Function: + func_index: 21 + ? - Value + - 95 + : Function: + func_index: 22 + ? - Value + - 96 + : Function: + func_index: 23 + ? - Value + - 97 + : Function: + func_index: 24 + ? - Value + - 98 + : Function: + func_index: 25 + ? - Value + - 99 + : Function: + func_index: 26 + ? - Value + - 102 + : Function: + func_index: 27 + ? - Value + - 103 + : Function: + func_index: 28 + ? - Value + - 104 + : Function: + func_index: 29 + ? - Value + - 105 + : Function: + func_index: 30 + ? - Value + - 106 + : Function: + func_index: 31 + ? - Value + - 107 + : Function: + func_index: 32 + ? - Value + - 108 + : Function: + func_index: 33 + ? - Value + - 109 + : Function: + func_index: 34 + ? - Value + - 110 + : Function: + func_index: 35 + ? - Value + - 111 + : Function: + func_index: 36 + ? - Value + - 112 + : Function: + func_index: 37 + ? - Value + - 113 + : Function: + func_index: 38 + ? - Value + - 114 + : Function: + func_index: 39 + ? - Value + - 115 + : Function: + func_index: 40 + ? - Value + - 116 + : Function: + func_index: 41 + ? - Value + - 117 + : Function: + func_index: 42 + ? - Value + - 118 + : Function: + func_index: 43 + ? - Value + - 119 + : Function: + func_index: 44 + ? - Value + - 120 + : Function: + func_index: 45 + ? - Value + - 121 + : Function: + func_index: 46 + ? - Value + - 122 + : Function: + func_index: 47 + ? - Value + - 123 + : Function: + func_index: 48 + ? - Value + - 124 + : Function: + func_index: 49 + ? - Value + - 125 + : Function: + func_index: 50 + ? - Value + - 126 + : Function: + func_index: 51 + ? - Value + - 127 + : Function: + func_index: 52 + ? - Value + - 128 + : Function: + func_index: 53 + ? - Value + - 129 + : Function: + func_index: 54 + ? - Value + - 130 + : Function: + func_index: 55 + ? - Value + - 131 + : Function: + func_index: 56 + ? - Value + - 132 + : Function: + func_index: 57 + ? - Value + - 133 + : Function: + func_index: 58 + ? - Value + - 134 + : Function: + func_index: 59 + ? - Value + - 135 + : Function: + func_index: 60 + ? - Value + - 136 + : Function: + func_index: 61 + ? - Value + - 137 + : Function: + func_index: 62 + ? - Value + - 138 + : Function: + func_index: 63 + ? - Value + - 139 + : Function: + func_index: 64 + ? - Value + - 140 + : Function: + func_index: 65 + ? - Value + - 141 + : Function: + func_index: 66 + ? - Value + - 142 + : Function: + func_index: 67 + ? - Value + - 143 + : Function: + func_index: 68 + ? - Value + - 144 + : Function: + func_index: 69 + ? - Value + - 145 + : Function: + func_index: 70 + ? - Value + - 146 + : Function: + func_index: 71 + ? - Value + - 147 + : Function: + func_index: 72 + ? - Value + - 148 + : Function: + func_index: 73 + ? - Value + - 149 + : Function: + func_index: 74 + ? - Value + - 150 + : Function: + func_index: 75 + ? - Value + - 151 + : Function: + func_index: 76 + ? - Value + - 152 + : Function: + func_index: 77 + ? - Value + - 153 + : Function: + func_index: 78 + ? - Value + - 154 + : Function: + func_index: 79 + ? - Value + - 188 + : Const: + const_index: 1 + wildcard_imports: [] + accesses: + - file_id: 1 + span: + start: 4 + end: 7 + - name: 176 + parent: 0 + declaration: + Module: 0 + symbols: + ? - Value + - 18 + : Function: + func_index: 84 + ? - Value + - 24 + : Function: + func_index: 85 + ? - Value + - 178 + : Function: + func_index: 80 + ? - Value + - 179 + : Function: + func_index: 81 + ? - Value + - 180 + : Function: + func_index: 82 + ? - Value + - 181 + : Function: + func_index: 83 + ? - Value + - 182 + : Function: + func_index: 86 + ? - Value + - 183 + : Function: + func_index: 87 + ? - Value + - 184 + : Function: + func_index: 88 + wildcard_imports: [] + accesses: [] +module_decls: + - namespace_idx: 1 + declaring_file_id: 0 + own_file_id: ~ + name: + inner: 176 + span: + start: 21312 + end: 21315 + pub_span: + start: 21301 + end: 21304 +import_decls: [] +enums: [] +exports: + 203: + Function: + internal_name: + inner: 203 + span: + start: 124 + end: 128 + external_name: ~ + id: 403 +structs: + - id: 366 + file_id: 0 + namespace: 0 + pub_span: + start: 20363 + end: 20366 + name: + inner: 167 + span: + start: 20374 + end: 20380 + type_params: + - name: + inner: 57 + span: + start: 20381 + end: 20384 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20386 + end: 20392 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20410 + end: 20413 + - file_id: 0 + span: + start: 20436 + end: 20439 + attributes: [] + fields: + - name: + inner: 166 + span: + start: 20404 + end: 20408 + ty: + inner: 134 + span: + start: 20410 + end: 20419 + pub_span: + start: 20400 + end: 20403 + accesses: + - kind: Init + file_id: 0 + span: + start: 20541 + end: 20545 + - kind: Init + file_id: 0 + span: + start: 20697 + end: 20701 + - name: + inner: 168 + span: + start: 20429 + end: 20434 + ty: + inner: 134 + span: + start: 20436 + end: 20445 + pub_span: + start: 20425 + end: 20428 + accesses: + - kind: Init + file_id: 0 + span: + start: 20563 + end: 20568 + - kind: Init + file_id: 0 + span: + start: 20673 + end: 20678 + lookup: + 166: 0 + 168: 1 + accesses: + - file_id: 0 + span: + start: 20468 + end: 20474 + - file_id: 0 + span: + start: 20829 + end: 20835 + - file_id: 0 + span: + start: 20984 + end: 20990 + - file_id: 0 + span: + start: 21217 + end: 21223 + - id: 402 + file_id: 1 + namespace: ~ + pub_span: ~ + name: + inner: 202 + span: + start: 19 + end: 22 + type_params: [] + attributes: [] + fields: + - name: + inner: 176 + span: + start: 33 + end: 36 + ty: + inner: 10 + span: + start: 38 + end: 41 + pub_span: + start: 29 + end: 32 + accesses: + - kind: Init + file_id: 1 + span: + start: 94 + end: 97 + - name: + inner: 70 + span: + start: 51 + end: 54 + ty: + inner: 10 + span: + start: 56 + end: 59 + pub_span: + start: 47 + end: 50 + accesses: [] + lookup: + 70: 1 + 176: 0 + accesses: + - file_id: 1 + span: + start: 77 + end: 80 + - file_id: 1 + span: + start: 87 + end: 90 +traits: + - id: 14 + file_id: 0 + namespace: 0 + pub_span: + start: 381 + end: 384 + name: + inner: 17 + span: + start: 391 + end: 394 + self_type_param: + name: + inner: 20 + span: + start: 391 + end: 394 + bounds: + traits: + - trait_index: 0 + bindings: [] + span: + start: 391 + end: 394 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 414 + end: 418 + - file_id: 0 + span: + start: 425 + end: 429 + - file_id: 0 + span: + start: 434 + end: 438 + entries: + 18: + Method: 90 + bounds: + traits: [] + typeset: ~ + - id: 16 + file_id: 0 + namespace: 0 + pub_span: + start: 458 + end: 461 + name: + inner: 23 + span: + start: 468 + end: 471 + self_type_param: + name: + inner: 20 + span: + start: 468 + end: 471 + bounds: + traits: + - trait_index: 1 + bindings: [] + span: + start: 468 + end: 471 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 491 + end: 495 + - file_id: 0 + span: + start: 502 + end: 506 + - file_id: 0 + span: + start: 511 + end: 515 + entries: + 24: + Method: 91 + bounds: + traits: [] + typeset: ~ + - id: 18 + file_id: 0 + namespace: 0 + pub_span: + start: 535 + end: 538 + name: + inner: 26 + span: + start: 545 + end: 548 + self_type_param: + name: + inner: 20 + span: + start: 545 + end: 548 + bounds: + traits: + - trait_index: 2 + bindings: [] + span: + start: 545 + end: 548 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 568 + end: 572 + - file_id: 0 + span: + start: 579 + end: 583 + - file_id: 0 + span: + start: 588 + end: 592 + entries: + 27: + Method: 92 + bounds: + traits: [] + typeset: ~ + - id: 20 + file_id: 0 + namespace: 0 + pub_span: + start: 612 + end: 615 + name: + inner: 29 + span: + start: 622 + end: 625 + self_type_param: + name: + inner: 20 + span: + start: 622 + end: 625 + bounds: + traits: + - trait_index: 3 + bindings: [] + span: + start: 622 + end: 625 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 645 + end: 649 + - file_id: 0 + span: + start: 656 + end: 660 + - file_id: 0 + span: + start: 665 + end: 669 + entries: + 30: + Method: 93 + bounds: + traits: [] + typeset: ~ + - id: 22 + file_id: 0 + namespace: 0 + pub_span: + start: 689 + end: 692 + name: + inner: 32 + span: + start: 699 + end: 702 + self_type_param: + name: + inner: 20 + span: + start: 699 + end: 702 + bounds: + traits: + - trait_index: 4 + bindings: [] + span: + start: 699 + end: 702 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 722 + end: 726 + - file_id: 0 + span: + start: 733 + end: 737 + - file_id: 0 + span: + start: 742 + end: 746 + entries: + 33: + Method: 94 + bounds: + traits: [] + typeset: ~ + - id: 24 + file_id: 0 + namespace: 0 + pub_span: + start: 766 + end: 769 + name: + inner: 35 + span: + start: 776 + end: 779 + self_type_param: + name: + inner: 20 + span: + start: 776 + end: 779 + bounds: + traits: + - trait_index: 5 + bindings: [] + span: + start: 776 + end: 779 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 799 + end: 803 + - file_id: 0 + span: + start: 808 + end: 812 + entries: + 36: + Method: 95 + bounds: + traits: [] + typeset: ~ + - id: 26 + file_id: 0 + namespace: 0 + pub_span: + start: 835 + end: 838 + name: + inner: 38 + span: + start: 845 + end: 851 + self_type_param: + name: + inner: 20 + span: + start: 845 + end: 851 + bounds: + traits: + - trait_index: 6 + bindings: [] + span: + start: 845 + end: 851 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 874 + end: 878 + - file_id: 0 + span: + start: 885 + end: 889 + - file_id: 0 + span: + start: 894 + end: 898 + entries: + 39: + Method: 96 + bounds: + traits: [] + typeset: ~ + - id: 28 + file_id: 0 + namespace: 0 + pub_span: + start: 920 + end: 923 + name: + inner: 41 + span: + start: 930 + end: 935 + self_type_param: + name: + inner: 20 + span: + start: 930 + end: 935 + bounds: + traits: + - trait_index: 7 + bindings: [] + span: + start: 930 + end: 935 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 957 + end: 961 + - file_id: 0 + span: + start: 968 + end: 972 + - file_id: 0 + span: + start: 977 + end: 981 + entries: + 42: + Method: 97 + bounds: + traits: [] + typeset: ~ + - id: 30 + file_id: 0 + namespace: 0 + pub_span: + start: 1004 + end: 1007 + name: + inner: 44 + span: + start: 1014 + end: 1020 + self_type_param: + name: + inner: 20 + span: + start: 1014 + end: 1020 + bounds: + traits: + - trait_index: 8 + bindings: [] + span: + start: 1014 + end: 1020 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1043 + end: 1047 + - file_id: 0 + span: + start: 1054 + end: 1058 + - file_id: 0 + span: + start: 1063 + end: 1067 + entries: + 45: + Method: 98 + bounds: + traits: [] + typeset: ~ + - id: 32 + file_id: 0 + namespace: 0 + pub_span: + start: 1087 + end: 1090 + name: + inner: 47 + span: + start: 1097 + end: 1100 + self_type_param: + name: + inner: 20 + span: + start: 1097 + end: 1100 + bounds: + traits: + - trait_index: 9 + bindings: [] + span: + start: 1097 + end: 1100 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1120 + end: 1124 + - file_id: 0 + span: + start: 1131 + end: 1135 + - file_id: 0 + span: + start: 1140 + end: 1144 + entries: + 48: + Method: 99 + bounds: + traits: [] + typeset: ~ + - id: 34 + file_id: 0 + namespace: 0 + pub_span: + start: 1164 + end: 1167 + name: + inner: 50 + span: + start: 1174 + end: 1177 + self_type_param: + name: + inner: 20 + span: + start: 1174 + end: 1177 + bounds: + traits: + - trait_index: 10 + bindings: [] + span: + start: 1174 + end: 1177 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1197 + end: 1201 + - file_id: 0 + span: + start: 1208 + end: 1212 + - file_id: 0 + span: + start: 1217 + end: 1221 + entries: + 51: + Method: 100 + bounds: + traits: [] + typeset: ~ + - id: 36 + file_id: 0 + namespace: 0 + pub_span: + start: 1244 + end: 1247 + name: + inner: 53 + span: + start: 1254 + end: 1260 + self_type_param: + name: + inner: 20 + span: + start: 1254 + end: 1260 + bounds: + traits: + - trait_index: 11 + bindings: [] + span: + start: 1254 + end: 1260 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 1283 + end: 1287 + - file_id: 0 + span: + start: 1292 + end: 1296 + entries: + 54: + Method: 101 + bounds: + traits: [] + typeset: ~ + - id: 340 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 159 + span: + start: 19411 + end: 19422 + self_type_param: + name: + inner: 20 + span: + start: 19411 + end: 19422 + bounds: + traits: + - trait_index: 12 + bindings: [] + span: + start: 19411 + end: 19422 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19471 + end: 19475 + entries: + 62: + AssocType: 1 + bounds: + traits: [] + typeset: ~ + - id: 342 + file_id: 0 + namespace: 0 + pub_span: ~ + name: + inner: 160 + span: + start: 19488 + end: 19497 + self_type_param: + name: + inner: 20 + span: + start: 19488 + end: 19497 + bounds: + traits: + - trait_index: 13 + bindings: [] + span: + start: 19488 + end: 19497 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 19548 + end: 19552 + entries: + 161: + AssocType: 2 + bounds: + traits: [] + typeset: ~ + - id: 365 + file_id: 0 + namespace: 0 + pub_span: + start: 20041 + end: 20044 + name: + inner: 58 + span: + start: 20051 + end: 20057 + self_type_param: + name: + inner: 20 + span: + start: 20051 + end: 20057 + bounds: + traits: + - trait_index: 14 + bindings: [] + span: + start: 20051 + end: 20057 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20153 + end: 20157 + - file_id: 0 + span: + start: 20204 + end: 20208 + - file_id: 0 + span: + start: 20219 + end: 20223 + - file_id: 0 + span: + start: 20315 + end: 20319 + entries: + 61: + AssocType: 0 + 163: + AssocConstant: 2 + 164: + AssocConstant: 3 + 165: + Method: 102 + 166: + Method: 103 + bounds: + traits: [] + typeset: ~ + - id: 374 + file_id: 0 + namespace: 0 + pub_span: + start: 20737 + end: 20740 + name: + inner: 172 + span: + start: 20747 + end: 20756 + self_type_param: + name: + inner: 20 + span: + start: 20747 + end: 20756 + bounds: + traits: + - trait_index: 15 + bindings: [] + span: + start: 20747 + end: 20756 + typeset: ~ + accesses: + - file_id: 0 + span: + start: 20803 + end: 20807 + - file_id: 0 + span: + start: 20904 + end: 20908 + - file_id: 0 + span: + start: 20916 + end: 20920 + - file_id: 0 + span: + start: 20935 + end: 20939 + - file_id: 0 + span: + start: 21105 + end: 21109 + - file_id: 0 + span: + start: 21117 + end: 21121 + - file_id: 0 + span: + start: 21128 + end: 21132 + - file_id: 0 + span: + start: 21148 + end: 21152 + - file_id: 0 + span: + start: 20815 + end: 20819 + - file_id: 0 + span: + start: 20836 + end: 20840 + - file_id: 0 + span: + start: 20851 + end: 20855 + - file_id: 0 + span: + start: 21006 + end: 21010 + - file_id: 0 + span: + start: 21245 + end: 21249 + entries: + 57: + AssocType: 11 + 173: + Method: 215 + 175: + Method: 216 + 177: + Method: 217 + bounds: + traits: [] + typeset: ~ +trait_impls: + - id: 125 + trait_index: 0 + type_params: [] + target: + inner: 11 + span: + start: 6264 + end: 6267 + members: + 18: + Method: 106 + file_id: 0 + - id: 127 + trait_index: 1 + type_params: [] + target: + inner: 11 + span: + start: 6365 + end: 6368 + members: + 24: + Method: 107 + file_id: 0 + - id: 129 + trait_index: 2 + type_params: [] + target: + inner: 11 + span: + start: 6466 + end: 6469 + members: + 27: + Method: 108 + file_id: 0 + - id: 131 + trait_index: 3 + type_params: [] + target: + inner: 11 + span: + start: 6567 + end: 6570 + members: + 30: + Method: 109 + file_id: 0 + - id: 133 + trait_index: 4 + type_params: [] + target: + inner: 11 + span: + start: 6668 + end: 6671 + members: + 33: + Method: 110 + file_id: 0 + - id: 135 + trait_index: 5 + type_params: [] + target: + inner: 11 + span: + start: 6769 + end: 6772 + members: + 36: + Method: 111 + file_id: 0 + - id: 137 + trait_index: 6 + type_params: [] + target: + inner: 11 + span: + start: 6857 + end: 6860 + members: + 39: + Method: 112 + file_id: 0 + - id: 139 + trait_index: 7 + type_params: [] + target: + inner: 11 + span: + start: 6966 + end: 6969 + members: + 42: + Method: 113 + file_id: 0 + - id: 141 + trait_index: 8 + type_params: [] + target: + inner: 11 + span: + start: 7074 + end: 7077 + members: + 45: + Method: 114 + file_id: 0 + - id: 143 + trait_index: 9 + type_params: [] + target: + inner: 11 + span: + start: 7181 + end: 7184 + members: + 48: + Method: 115 + file_id: 0 + - id: 145 + trait_index: 10 + type_params: [] + target: + inner: 11 + span: + start: 7282 + end: 7285 + members: + 51: + Method: 116 + file_id: 0 + - id: 147 + trait_index: 11 + type_params: [] + target: + inner: 11 + span: + start: 7386 + end: 7389 + members: + 54: + Method: 117 + file_id: 0 + - id: 149 + trait_index: 0 + type_params: [] + target: + inner: 10 + span: + start: 7477 + end: 7480 + members: + 18: + Method: 118 + file_id: 0 + - id: 151 + trait_index: 1 + type_params: [] + target: + inner: 10 + span: + start: 7611 + end: 7614 + members: + 24: + Method: 119 + file_id: 0 + - id: 153 + trait_index: 2 + type_params: [] + target: + inner: 10 + span: + start: 7745 + end: 7748 + members: + 27: + Method: 120 + file_id: 0 + - id: 155 + trait_index: 3 + type_params: [] + target: + inner: 10 + span: + start: 7879 + end: 7882 + members: + 30: + Method: 121 + file_id: 0 + - id: 157 + trait_index: 4 + type_params: [] + target: + inner: 10 + span: + start: 7980 + end: 7983 + members: + 33: + Method: 122 + file_id: 0 + - id: 159 + trait_index: 6 + type_params: [] + target: + inner: 10 + span: + start: 8084 + end: 8087 + members: + 39: + Method: 123 + file_id: 0 + - id: 161 + trait_index: 7 + type_params: [] + target: + inner: 10 + span: + start: 8226 + end: 8229 + members: + 42: + Method: 124 + file_id: 0 + - id: 163 + trait_index: 8 + type_params: [] + target: + inner: 10 + span: + start: 8367 + end: 8370 + members: + 45: + Method: 125 + file_id: 0 + - id: 165 + trait_index: 9 + type_params: [] + target: + inner: 10 + span: + start: 8507 + end: 8510 + members: + 48: + Method: 126 + file_id: 0 + - id: 167 + trait_index: 10 + type_params: [] + target: + inner: 10 + span: + start: 8641 + end: 8644 + members: + 51: + Method: 127 + file_id: 0 + - id: 169 + trait_index: 11 + type_params: [] + target: + inner: 10 + span: + start: 8745 + end: 8748 + members: + 54: + Method: 128 + file_id: 0 + - id: 171 + trait_index: 0 + type_params: [] + target: + inner: 13 + span: + start: 8862 + end: 8865 + members: + 18: + Method: 129 + file_id: 0 + - id: 173 + trait_index: 1 + type_params: [] + target: + inner: 13 + span: + start: 8963 + end: 8966 + members: + 24: + Method: 130 + file_id: 0 + - id: 175 + trait_index: 2 + type_params: [] + target: + inner: 13 + span: + start: 9064 + end: 9067 + members: + 27: + Method: 131 + file_id: 0 + - id: 177 + trait_index: 3 + type_params: [] + target: + inner: 13 + span: + start: 9165 + end: 9168 + members: + 30: + Method: 132 + file_id: 0 + - id: 179 + trait_index: 4 + type_params: [] + target: + inner: 13 + span: + start: 9266 + end: 9269 + members: + 33: + Method: 133 + file_id: 0 + - id: 181 + trait_index: 5 + type_params: [] + target: + inner: 13 + span: + start: 9367 + end: 9370 + members: + 36: + Method: 134 + file_id: 0 + - id: 183 + trait_index: 6 + type_params: [] + target: + inner: 13 + span: + start: 9455 + end: 9458 + members: + 39: + Method: 135 + file_id: 0 + - id: 185 + trait_index: 7 + type_params: [] + target: + inner: 13 + span: + start: 9564 + end: 9567 + members: + 42: + Method: 136 + file_id: 0 + - id: 187 + trait_index: 8 + type_params: [] + target: + inner: 13 + span: + start: 9672 + end: 9675 + members: + 45: + Method: 137 + file_id: 0 + - id: 189 + trait_index: 9 + type_params: [] + target: + inner: 13 + span: + start: 9779 + end: 9782 + members: + 48: + Method: 138 + file_id: 0 + - id: 191 + trait_index: 10 + type_params: [] + target: + inner: 13 + span: + start: 9880 + end: 9883 + members: + 51: + Method: 139 + file_id: 0 + - id: 193 + trait_index: 11 + type_params: [] + target: + inner: 13 + span: + start: 9984 + end: 9987 + members: + 54: + Method: 140 + file_id: 0 + - id: 195 + trait_index: 0 + type_params: [] + target: + inner: 12 + span: + start: 10075 + end: 10078 + members: + 18: + Method: 141 + file_id: 0 + - id: 197 + trait_index: 1 + type_params: [] + target: + inner: 12 + span: + start: 10209 + end: 10212 + members: + 24: + Method: 142 + file_id: 0 + - id: 199 + trait_index: 2 + type_params: [] + target: + inner: 12 + span: + start: 10343 + end: 10346 + members: + 27: + Method: 143 + file_id: 0 + - id: 201 + trait_index: 3 + type_params: [] + target: + inner: 12 + span: + start: 10477 + end: 10480 + members: + 30: + Method: 144 + file_id: 0 + - id: 203 + trait_index: 4 + type_params: [] + target: + inner: 12 + span: + start: 10578 + end: 10581 + members: + 33: + Method: 145 + file_id: 0 + - id: 205 + trait_index: 6 + type_params: [] + target: + inner: 12 + span: + start: 10682 + end: 10685 + members: + 39: + Method: 146 + file_id: 0 + - id: 207 + trait_index: 7 + type_params: [] + target: + inner: 12 + span: + start: 10824 + end: 10827 + members: + 42: + Method: 147 + file_id: 0 + - id: 209 + trait_index: 8 + type_params: [] + target: + inner: 12 + span: + start: 10965 + end: 10968 + members: + 45: + Method: 148 + file_id: 0 + - id: 211 + trait_index: 9 + type_params: [] + target: + inner: 12 + span: + start: 11105 + end: 11108 + members: + 48: + Method: 149 + file_id: 0 + - id: 213 + trait_index: 10 + type_params: [] + target: + inner: 12 + span: + start: 11239 + end: 11242 + members: + 51: + Method: 150 + file_id: 0 + - id: 215 + trait_index: 11 + type_params: [] + target: + inner: 12 + span: + start: 11343 + end: 11346 + members: + 54: + Method: 151 + file_id: 0 + - id: 217 + trait_index: 0 + type_params: [] + target: + inner: 14 + span: + start: 11460 + end: 11463 + members: + 18: + Method: 152 + file_id: 0 + - id: 219 + trait_index: 1 + type_params: [] + target: + inner: 14 + span: + start: 11561 + end: 11564 + members: + 24: + Method: 153 + file_id: 0 + - id: 221 + trait_index: 2 + type_params: [] + target: + inner: 14 + span: + start: 11662 + end: 11665 + members: + 27: + Method: 154 + file_id: 0 + - id: 223 + trait_index: 3 + type_params: [] + target: + inner: 14 + span: + start: 11763 + end: 11766 + members: + 30: + Method: 155 + file_id: 0 + - id: 225 + trait_index: 5 + type_params: [] + target: + inner: 14 + span: + start: 11864 + end: 11867 + members: + 36: + Method: 156 + file_id: 0 + - id: 227 + trait_index: 4 + type_params: [] + target: + inner: 14 + span: + start: 11949 + end: 11952 + members: + 33: + Method: 157 + file_id: 0 + - id: 229 + trait_index: 0 + type_params: [] + target: + inner: 15 + span: + start: 12172 + end: 12175 + members: + 18: + Method: 158 + file_id: 0 + - id: 231 + trait_index: 1 + type_params: [] + target: + inner: 15 + span: + start: 12273 + end: 12276 + members: + 24: + Method: 159 + file_id: 0 + - id: 233 + trait_index: 2 + type_params: [] + target: + inner: 15 + span: + start: 12374 + end: 12377 + members: + 27: + Method: 160 + file_id: 0 + - id: 235 + trait_index: 3 + type_params: [] + target: + inner: 15 + span: + start: 12475 + end: 12478 + members: + 30: + Method: 161 + file_id: 0 + - id: 237 + trait_index: 5 + type_params: [] + target: + inner: 15 + span: + start: 12576 + end: 12579 + members: + 36: + Method: 162 + file_id: 0 + - id: 239 + trait_index: 4 + type_params: [] + target: + inner: 15 + span: + start: 12661 + end: 12664 + members: + 33: + Method: 163 + file_id: 0 + - id: 241 + trait_index: 0 + type_params: [] + target: + inner: 7 + span: + start: 12884 + end: 12886 + members: + 18: + Method: 164 + file_id: 0 + - id: 243 + trait_index: 1 + type_params: [] + target: + inner: 7 + span: + start: 13016 + end: 13018 + members: + 24: + Method: 165 + file_id: 0 + - id: 245 + trait_index: 2 + type_params: [] + target: + inner: 7 + span: + start: 13148 + end: 13150 + members: + 27: + Method: 166 + file_id: 0 + - id: 247 + trait_index: 3 + type_params: [] + target: + inner: 7 + span: + start: 13280 + end: 13282 + members: + 30: + Method: 167 + file_id: 0 + - id: 249 + trait_index: 4 + type_params: [] + target: + inner: 7 + span: + start: 13412 + end: 13414 + members: + 33: + Method: 168 + file_id: 0 + - id: 251 + trait_index: 5 + type_params: [] + target: + inner: 7 + span: + start: 13544 + end: 13546 + members: + 36: + Method: 169 + file_id: 0 + - id: 253 + trait_index: 6 + type_params: [] + target: + inner: 7 + span: + start: 13644 + end: 13646 + members: + 39: + Method: 170 + file_id: 0 + - id: 255 + trait_index: 7 + type_params: [] + target: + inner: 7 + span: + start: 13784 + end: 13786 + members: + 42: + Method: 171 + file_id: 0 + - id: 257 + trait_index: 8 + type_params: [] + target: + inner: 7 + span: + start: 13923 + end: 13925 + members: + 45: + Method: 172 + file_id: 0 + - id: 259 + trait_index: 9 + type_params: [] + target: + inner: 7 + span: + start: 14061 + end: 14063 + members: + 48: + Method: 173 + file_id: 0 + - id: 261 + trait_index: 10 + type_params: [] + target: + inner: 7 + span: + start: 14193 + end: 14195 + members: + 51: + Method: 174 + file_id: 0 + - id: 263 + trait_index: 11 + type_params: [] + target: + inner: 7 + span: + start: 14328 + end: 14330 + members: + 54: + Method: 175 + file_id: 0 + - id: 265 + trait_index: 0 + type_params: [] + target: + inner: 6 + span: + start: 14431 + end: 14433 + members: + 18: + Method: 176 + file_id: 0 + - id: 267 + trait_index: 1 + type_params: [] + target: + inner: 6 + span: + start: 14563 + end: 14565 + members: + 24: + Method: 177 + file_id: 0 + - id: 269 + trait_index: 2 + type_params: [] + target: + inner: 6 + span: + start: 14695 + end: 14697 + members: + 27: + Method: 178 + file_id: 0 + - id: 271 + trait_index: 3 + type_params: [] + target: + inner: 6 + span: + start: 14827 + end: 14829 + members: + 30: + Method: 179 + file_id: 0 + - id: 273 + trait_index: 4 + type_params: [] + target: + inner: 6 + span: + start: 14959 + end: 14961 + members: + 33: + Method: 180 + file_id: 0 + - id: 275 + trait_index: 6 + type_params: [] + target: + inner: 6 + span: + start: 15094 + end: 15096 + members: + 39: + Method: 181 + file_id: 0 + - id: 277 + trait_index: 7 + type_params: [] + target: + inner: 6 + span: + start: 15234 + end: 15236 + members: + 42: + Method: 182 + file_id: 0 + - id: 279 + trait_index: 8 + type_params: [] + target: + inner: 6 + span: + start: 15373 + end: 15375 + members: + 45: + Method: 183 + file_id: 0 + - id: 281 + trait_index: 9 + type_params: [] + target: + inner: 6 + span: + start: 15511 + end: 15513 + members: + 48: + Method: 184 + file_id: 0 + - id: 283 + trait_index: 10 + type_params: [] + target: + inner: 6 + span: + start: 15643 + end: 15645 + members: + 51: + Method: 185 + file_id: 0 + - id: 285 + trait_index: 11 + type_params: [] + target: + inner: 6 + span: + start: 15778 + end: 15780 + members: + 54: + Method: 186 + file_id: 0 + - id: 287 + trait_index: 0 + type_params: [] + target: + inner: 9 + span: + start: 15881 + end: 15884 + members: + 18: + Method: 187 + file_id: 0 + - id: 289 + trait_index: 1 + type_params: [] + target: + inner: 9 + span: + start: 16015 + end: 16018 + members: + 24: + Method: 188 + file_id: 0 + - id: 291 + trait_index: 2 + type_params: [] + target: + inner: 9 + span: + start: 16149 + end: 16152 + members: + 27: + Method: 189 + file_id: 0 + - id: 293 + trait_index: 3 + type_params: [] + target: + inner: 9 + span: + start: 16283 + end: 16286 + members: + 30: + Method: 190 + file_id: 0 + - id: 295 + trait_index: 4 + type_params: [] + target: + inner: 9 + span: + start: 16417 + end: 16420 + members: + 33: + Method: 191 + file_id: 0 + - id: 297 + trait_index: 5 + type_params: [] + target: + inner: 9 + span: + start: 16551 + end: 16554 + members: + 36: + Method: 192 + file_id: 0 + - id: 299 + trait_index: 6 + type_params: [] + target: + inner: 9 + span: + start: 16653 + end: 16656 + members: + 39: + Method: 193 + file_id: 0 + - id: 301 + trait_index: 7 + type_params: [] + target: + inner: 9 + span: + start: 16795 + end: 16798 + members: + 42: + Method: 194 + file_id: 0 + - id: 303 + trait_index: 8 + type_params: [] + target: + inner: 9 + span: + start: 16936 + end: 16939 + members: + 45: + Method: 195 + file_id: 0 + - id: 305 + trait_index: 9 + type_params: [] + target: + inner: 9 + span: + start: 17076 + end: 17079 + members: + 48: + Method: 196 + file_id: 0 + - id: 307 + trait_index: 10 + type_params: [] + target: + inner: 9 + span: + start: 17210 + end: 17213 + members: + 51: + Method: 197 + file_id: 0 + - id: 309 + trait_index: 11 + type_params: [] + target: + inner: 9 + span: + start: 17347 + end: 17350 + members: + 54: + Method: 198 + file_id: 0 + - id: 311 + trait_index: 0 + type_params: [] + target: + inner: 8 + span: + start: 17452 + end: 17455 + members: + 18: + Method: 199 + file_id: 0 + - id: 313 + trait_index: 1 + type_params: [] + target: + inner: 8 + span: + start: 17586 + end: 17589 + members: + 24: + Method: 200 + file_id: 0 + - id: 315 + trait_index: 2 + type_params: [] + target: + inner: 8 + span: + start: 17720 + end: 17723 + members: + 27: + Method: 201 + file_id: 0 + - id: 317 + trait_index: 3 + type_params: [] + target: + inner: 8 + span: + start: 17854 + end: 17857 + members: + 30: + Method: 202 + file_id: 0 + - id: 319 + trait_index: 4 + type_params: [] + target: + inner: 8 + span: + start: 17988 + end: 17991 + members: + 33: + Method: 203 + file_id: 0 + - id: 321 + trait_index: 6 + type_params: [] + target: + inner: 8 + span: + start: 18125 + end: 18128 + members: + 39: + Method: 204 + file_id: 0 + - id: 323 + trait_index: 7 + type_params: [] + target: + inner: 8 + span: + start: 18267 + end: 18270 + members: + 42: + Method: 205 + file_id: 0 + - id: 325 + trait_index: 8 + type_params: [] + target: + inner: 8 + span: + start: 18408 + end: 18411 + members: + 45: + Method: 206 + file_id: 0 + - id: 327 + trait_index: 9 + type_params: [] + target: + inner: 8 + span: + start: 18548 + end: 18551 + members: + 48: + Method: 207 + file_id: 0 + - id: 329 + trait_index: 10 + type_params: [] + target: + inner: 8 + span: + start: 18682 + end: 18685 + members: + 51: + Method: 208 + file_id: 0 + - id: 331 + trait_index: 11 + type_params: [] + target: + inner: 8 + span: + start: 18819 + end: 18822 + members: + 54: + Method: 209 + file_id: 0 + - id: 333 + trait_index: 6 + type_params: [] + target: + inner: 16 + span: + start: 18927 + end: 18931 + members: + 39: + Method: 210 + file_id: 0 + - id: 335 + trait_index: 7 + type_params: [] + target: + inner: 16 + span: + start: 19071 + end: 19075 + members: + 42: + Method: 211 + file_id: 0 + - id: 337 + trait_index: 8 + type_params: [] + target: + inner: 16 + span: + start: 19214 + end: 19218 + members: + 45: + Method: 212 + file_id: 0 + - id: 344 + trait_index: 12 + type_params: [] + target: + inner: 6 + span: + start: 19580 + end: 19582 + members: + 62: + AssocType: 3 + file_id: 0 + - id: 346 + trait_index: 12 + type_params: [] + target: + inner: 8 + span: + start: 19631 + end: 19634 + members: + 62: + AssocType: 4 + file_id: 0 + - id: 348 + trait_index: 12 + type_params: [] + target: + inner: 10 + span: + start: 19684 + end: 19687 + members: + 62: + AssocType: 5 + file_id: 0 + - id: 350 + trait_index: 12 + type_params: [] + target: + inner: 12 + span: + start: 19737 + end: 19740 + members: + 62: + AssocType: 6 + file_id: 0 + - id: 352 + trait_index: 13 + type_params: [] + target: + inner: 7 + span: + start: 19788 + end: 19790 + members: + 161: + AssocType: 7 + file_id: 0 + - id: 354 + trait_index: 13 + type_params: [] + target: + inner: 9 + span: + start: 19839 + end: 19842 + members: + 161: + AssocType: 8 + file_id: 0 + - id: 356 + trait_index: 13 + type_params: [] + target: + inner: 11 + span: + start: 19892 + end: 19895 + members: + 161: + AssocType: 9 + file_id: 0 + - id: 358 + trait_index: 13 + type_params: [] + target: + inner: 13 + span: + start: 19945 + end: 19948 + members: + 161: + AssocType: 10 + file_id: 0 +constants: + - id: 37 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: + start: 1301 + end: 1304 + name: + inner: 55 + span: + start: 1311 + end: 1320 + ty: + inner: 10 + span: + start: 1322 + end: 1325 + value: + kind: + Int: + value: 65536 + ty: 10 + span: + start: 1328 + end: 1333 + const_value: + Int: 65536 + accesses: [] + attributes: [] + - id: 387 + file_id: 0 + namespace: 0 + parent: ~ + pub_span: ~ + name: + inner: 188 + span: + start: 22784 + end: 22799 + ty: + inner: 6 + span: + start: 22801 + end: 22803 + value: + kind: + Int: + value: 32 + ty: 6 + span: + start: 22806 + end: 22817 + const_value: + Int: 32 + accesses: + - file_id: 0 + span: + start: 22959 + end: 22974 + - file_id: 0 + span: + start: 23162 + end: 23177 + attributes: [] + - id: 361 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 163 + span: + start: 20113 + end: 20125 + ty: + inner: 10 + span: + start: 20127 + end: 20130 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 362 + file_id: 0 + namespace: 0 + parent: + Trait: 14 + pub_span: ~ + name: + inner: 164 + span: + start: 20143 + end: 20151 + ty: + inner: 46 + span: + start: 20153 + end: 20162 + value: ~ + const_value: ~ + accesses: [] + attributes: [] + - id: 118 + file_id: 0 + namespace: 0 + parent: + Impl: 14 + pub_span: + start: 5968 + end: 5971 + name: + inner: 155 + span: + start: 5978 + end: 5980 + ty: + inner: 14 + span: + start: 5978 + end: 5980 + value: + kind: + Float: + value: 3.141592653589793 + ty: 14 + span: + start: 5988 + end: 6025 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] + - id: 121 + file_id: 0 + namespace: 0 + parent: + Impl: 15 + pub_span: + start: 6117 + end: 6120 + name: + inner: 155 + span: + start: 6127 + end: 6129 + ty: + inner: 15 + span: + start: 6127 + end: 6129 + value: + kind: + Float: + value: 3.141592653589793 + ty: 15 + span: + start: 6137 + end: 6174 + const_value: + Float: 3.141592653589793 + accesses: [] + attributes: [] +assoc_type_impls: + - id: 360 + file_id: 0 + name: + inner: 61 + span: + start: 20069 + end: 20073 + ty: ~ + attributes: [] + - id: 339 + file_id: 0 + name: + inner: 62 + span: + start: 19434 + end: 19440 + ty: ~ + attributes: [] + - id: 341 + file_id: 0 + name: + inner: 161 + span: + start: 19509 + end: 19517 + ty: ~ + attributes: [] + - id: 343 + file_id: 0 + name: + inner: 62 + span: + start: 19594 + end: 19600 + ty: + inner: 7 + span: + start: 19603 + end: 19605 + attributes: [] + - id: 345 + file_id: 0 + name: + inner: 62 + span: + start: 19646 + end: 19652 + ty: + inner: 9 + span: + start: 19655 + end: 19658 + attributes: [] + - id: 347 + file_id: 0 + name: + inner: 62 + span: + start: 19699 + end: 19705 + ty: + inner: 11 + span: + start: 19708 + end: 19711 + attributes: [] + - id: 349 + file_id: 0 + name: + inner: 62 + span: + start: 19752 + end: 19758 + ty: + inner: 13 + span: + start: 19761 + end: 19764 + attributes: [] + - id: 351 + file_id: 0 + name: + inner: 161 + span: + start: 19802 + end: 19810 + ty: + inner: 6 + span: + start: 19813 + end: 19815 + attributes: [] + - id: 353 + file_id: 0 + name: + inner: 161 + span: + start: 19854 + end: 19862 + ty: + inner: 8 + span: + start: 19865 + end: 19868 + attributes: [] + - id: 355 + file_id: 0 + name: + inner: 161 + span: + start: 19907 + end: 19915 + ty: + inner: 10 + span: + start: 19918 + end: 19921 + attributes: [] + - id: 357 + file_id: 0 + name: + inner: 161 + span: + start: 19960 + end: 19968 + ty: + inner: 12 + span: + start: 19971 + end: 19974 + attributes: [] + - id: 370 + file_id: 0 + name: + inner: 57 + span: + start: 20768 + end: 20771 + ty: ~ + attributes: [] +typesets: + - id: 338 + file_id: 0 + namespace: 0 + name: + inner: 158 + span: + start: 19355 + end: 19362 + pub_span: + start: 19343 + end: 19346 + members: + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + intersection_range: + min: 0 + max: 127 + accesses: [] + attributes: [] + - id: 359 + file_id: 0 + namespace: 0 + name: + inner: 77 + span: + start: 20015 + end: 20026 + pub_span: + start: 20003 + end: 20006 + members: + - 10 + - 12 + intersection_range: + min: 0 + max: 4294967295 + accesses: + - file_id: 0 + span: + start: 20075 + end: 20086 + - file_id: 0 + span: + start: 2010 + end: 2021 + attributes: + - Tag: 204 +type_aliases: + - id: 0 + file_id: 0 + namespace: 0 + pub_span: + start: 13 + end: 16 + name: + inner: 2 + span: + start: 22 + end: 24 + attributes: + - Intrinsic + type_params: [] + body: 7 + accesses: + - file_id: 0 + span: + start: 12884 + end: 12886 + - file_id: 0 + span: + start: 13016 + end: 13018 + - file_id: 0 + span: + start: 13148 + end: 13150 + - file_id: 0 + span: + start: 13280 + end: 13282 + - file_id: 0 + span: + start: 13412 + end: 13414 + - file_id: 0 + span: + start: 13544 + end: 13546 + - file_id: 0 + span: + start: 13644 + end: 13646 + - file_id: 0 + span: + start: 13784 + end: 13786 + - file_id: 0 + span: + start: 13923 + end: 13925 + - file_id: 0 + span: + start: 14061 + end: 14063 + - file_id: 0 + span: + start: 14193 + end: 14195 + - file_id: 0 + span: + start: 14328 + end: 14330 + - file_id: 0 + span: + start: 19369 + end: 19371 + - file_id: 0 + span: + start: 19603 + end: 19605 + - file_id: 0 + span: + start: 19788 + end: 19790 + - file_id: 0 + span: + start: 12991 + end: 12993 + - file_id: 0 + span: + start: 13123 + end: 13125 + - file_id: 0 + span: + start: 13255 + end: 13257 + - file_id: 0 + span: + start: 13387 + end: 13389 + - file_id: 0 + span: + start: 13519 + end: 13521 + - file_id: 0 + span: + start: 13620 + end: 13622 + - file_id: 0 + span: + start: 13757 + end: 13759 + - file_id: 0 + span: + start: 13895 + end: 13897 + - file_id: 0 + span: + start: 14036 + end: 14038 + - file_id: 0 + span: + start: 14168 + end: 14170 + - file_id: 0 + span: + start: 14300 + end: 14302 + - file_id: 0 + span: + start: 14410 + end: 14412 + - id: 1 + file_id: 0 + namespace: 0 + pub_span: + start: 40 + end: 43 + name: + inner: 3 + span: + start: 49 + end: 51 + attributes: + - Intrinsic + type_params: [] + body: 6 + accesses: + - file_id: 0 + span: + start: 20160 + end: 20162 + - file_id: 0 + span: + start: 1936 + end: 1938 + - file_id: 0 + span: + start: 1945 + end: 1947 + - file_id: 0 + span: + start: 2123 + end: 2125 + - file_id: 0 + span: + start: 2141 + end: 2143 + - file_id: 0 + span: + start: 14431 + end: 14433 + - file_id: 0 + span: + start: 14563 + end: 14565 + - file_id: 0 + span: + start: 14695 + end: 14697 + - file_id: 0 + span: + start: 14827 + end: 14829 + - file_id: 0 + span: + start: 14959 + end: 14961 + - file_id: 0 + span: + start: 15094 + end: 15096 + - file_id: 0 + span: + start: 15234 + end: 15236 + - file_id: 0 + span: + start: 15373 + end: 15375 + - file_id: 0 + span: + start: 15511 + end: 15513 + - file_id: 0 + span: + start: 15643 + end: 15645 + - file_id: 0 + span: + start: 15778 + end: 15780 + - file_id: 0 + span: + start: 19365 + end: 19367 + - file_id: 0 + span: + start: 19580 + end: 19582 + - file_id: 0 + span: + start: 19813 + end: 19815 + - file_id: 0 + span: + start: 20863 + end: 20865 + - file_id: 0 + span: + start: 22801 + end: 22803 + - file_id: 0 + span: + start: 14538 + end: 14540 + - file_id: 0 + span: + start: 14670 + end: 14672 + - file_id: 0 span: - start: 7781 - end: 7823 -globals: [] -memories: [] -namespaces: - - name: 0 - parent: ~ - declaration: - Crate: - - 0 - - 0 - symbols: - ? - Type - - 5 - : TraitAssocType: - trait_index: 3 - assoc_name: 5 - ? - Type - - 6 - : Trait: - trait_index: 2 - ? - Type - - 9 - : TraitAssocType: - trait_index: 2 - assoc_name: 9 - ? - Type - - 10 - : TraitAssocType: - trait_index: 0 - assoc_name: 10 - ? - Type - - 26 - : TypeSet: - typeset_index: 1 - ? - Type - - 66 - : TypeSet: - typeset_index: 0 - ? - Type - - 70 - : Trait: - trait_index: 0 - ? - Type - - 71 - : Trait: - trait_index: 1 - ? - Type - - 72 - : TraitAssocType: - trait_index: 1 - assoc_name: 72 - ? - Type - - 82 - : Struct: - struct_index: 0 - ? - Type - - 87 - : Trait: - trait_index: 3 - ? - Type - - 91 - : Module: - namespace_idx: 1 - ? - Value - - 1 - : Const: - const_index: 0 - ? - Value - - 4 - : Function: - func_index: 0 - ? - Value - - 11 - : Function: - func_index: 1 - ? - Value - - 12 - : Function: - func_index: 2 - ? - Value - - 15 - : Function: - func_index: 3 - ? - Value - - 16 - : Function: - func_index: 4 - ? - Value - - 19 - : Function: - func_index: 5 - ? - Value - - 20 - : Function: - func_index: 6 - ? - Value - - 21 - : Function: - func_index: 7 - ? - Value - - 25 - : Function: - func_index: 8 - ? - Value - - 30 - : Function: - func_index: 9 - ? - Value - - 34 - : Function: - func_index: 10 - ? - Value - - 36 - : Function: - func_index: 11 - ? - Value - - 37 - : Function: - func_index: 12 - ? - Value - - 39 - : Function: - func_index: 13 - ? - Value - - 41 - : Function: - func_index: 14 - ? - Value - - 42 - : Function: - func_index: 15 - ? - Value - - 43 - : Function: - func_index: 16 - ? - Value - - 44 - : Function: - func_index: 17 - ? - Value - - 45 - : Function: - func_index: 18 - ? - Value - - 46 - : Function: - func_index: 19 - ? - Value - - 47 - : Function: - func_index: 20 - ? - Value - - 48 - : Function: - func_index: 21 - ? - Value - - 49 - : Function: - func_index: 22 - ? - Value - - 50 - : Function: - func_index: 23 - ? - Value - - 51 - : Function: - func_index: 24 - ? - Value - - 52 - : Function: - func_index: 25 - ? - Value - - 53 - : Function: - func_index: 26 - ? - Value - - 54 - : Function: - func_index: 27 - ? - Value - - 55 - : Function: - func_index: 28 - ? - Value - - 56 - : Function: - func_index: 29 - ? - Value - - 57 - : Function: - func_index: 30 - ? - Value - - 58 - : Function: - func_index: 31 - ? - Value - - 59 - : Function: - func_index: 32 - ? - Value - - 60 - : Function: - func_index: 33 - ? - Value - - 61 - : Function: - func_index: 34 - ? - Value - - 62 - : Function: - func_index: 35 - ? - Value - - 63 - : Function: - func_index: 36 - ? - Value - - 64 - : Function: - func_index: 37 - ? - Value - - 102 - : Const: - const_index: 1 - wildcard_imports: [] + start: 14802 + end: 14804 + - file_id: 0 + span: + start: 14934 + end: 14936 + - file_id: 0 + span: + start: 15066 + end: 15068 + - file_id: 0 + span: + start: 15207 + end: 15209 + - file_id: 0 + span: + start: 15345 + end: 15347 + - file_id: 0 + span: + start: 15486 + end: 15488 + - file_id: 0 + span: + start: 15618 + end: 15620 + - file_id: 0 + span: + start: 15750 + end: 15752 + - file_id: 0 + span: + start: 15860 + end: 15862 + - file_id: 0 + span: + start: 22953 + end: 22955 + - file_id: 0 + span: + start: 23156 + end: 23158 + - id: 2 + file_id: 0 + namespace: 0 + pub_span: + start: 67 + end: 70 + name: + inner: 4 + span: + start: 76 + end: 79 + attributes: + - Intrinsic + type_params: [] + body: 9 + accesses: + - file_id: 0 + span: + start: 15881 + end: 15884 + - file_id: 0 + span: + start: 16015 + end: 16018 + - file_id: 0 + span: + start: 16149 + end: 16152 + - file_id: 0 + span: + start: 16283 + end: 16286 + - file_id: 0 + span: + start: 16417 + end: 16420 + - file_id: 0 + span: + start: 16551 + end: 16554 + - file_id: 0 + span: + start: 16653 + end: 16656 + - file_id: 0 + span: + start: 16795 + end: 16798 + - file_id: 0 + span: + start: 16936 + end: 16939 + - file_id: 0 + span: + start: 17076 + end: 17079 + - file_id: 0 + span: + start: 17210 + end: 17213 + - file_id: 0 + span: + start: 17347 + end: 17350 + - file_id: 0 + span: + start: 19378 + end: 19381 + - file_id: 0 + span: + start: 19655 + end: 19658 + - file_id: 0 + span: + start: 19839 + end: 19842 + - file_id: 0 + span: + start: 15989 + end: 15992 + - file_id: 0 + span: + start: 16123 + end: 16126 + - file_id: 0 + span: + start: 16257 + end: 16260 + - file_id: 0 + span: + start: 16391 + end: 16394 + - file_id: 0 + span: + start: 16525 + end: 16528 + - file_id: 0 + span: + start: 16628 + end: 16631 + - file_id: 0 + span: + start: 16767 + end: 16770 + - file_id: 0 + span: + start: 16907 + end: 16910 + - file_id: 0 + span: + start: 17050 + end: 17053 + - file_id: 0 + span: + start: 17184 + end: 17187 + - file_id: 0 + span: + start: 17318 + end: 17321 + - file_id: 0 + span: + start: 17430 + end: 17433 + - id: 3 + file_id: 0 + namespace: 0 + pub_span: + start: 95 + end: 98 + name: + inner: 5 + span: + start: 104 + end: 107 + attributes: + - Intrinsic + type_params: [] + body: 8 accesses: - - file_id: 1 + - file_id: 0 + span: + start: 17452 + end: 17455 + - file_id: 0 + span: + start: 17586 + end: 17589 + - file_id: 0 + span: + start: 17720 + end: 17723 + - file_id: 0 + span: + start: 17854 + end: 17857 + - file_id: 0 + span: + start: 17988 + end: 17991 + - file_id: 0 + span: + start: 18125 + end: 18128 + - file_id: 0 + span: + start: 18267 + end: 18270 + - file_id: 0 + span: + start: 18408 + end: 18411 + - file_id: 0 + span: + start: 18548 + end: 18551 + - file_id: 0 + span: + start: 18682 + end: 18685 + - file_id: 0 + span: + start: 18819 + end: 18822 + - file_id: 0 + span: + start: 19373 + end: 19376 + - file_id: 0 + span: + start: 19631 + end: 19634 + - file_id: 0 + span: + start: 19865 + end: 19868 + - file_id: 0 + span: + start: 17560 + end: 17563 + - file_id: 0 + span: + start: 17694 + end: 17697 + - file_id: 0 + span: + start: 17828 + end: 17831 + - file_id: 0 + span: + start: 17962 + end: 17965 + - file_id: 0 + span: + start: 18096 + end: 18099 + - file_id: 0 + span: + start: 18239 + end: 18242 + - file_id: 0 + span: + start: 18379 + end: 18382 + - file_id: 0 + span: + start: 18522 + end: 18525 + - file_id: 0 + span: + start: 18656 + end: 18659 + - file_id: 0 + span: + start: 18790 + end: 18793 + - file_id: 0 + span: + start: 18902 + end: 18905 + - id: 4 + file_id: 0 + namespace: 0 + pub_span: + start: 123 + end: 126 + name: + inner: 6 + span: + start: 132 + end: 135 + attributes: + - Intrinsic + type_params: [] + body: 11 + accesses: + - file_id: 0 + span: + start: 2200 + end: 2203 + - file_id: 0 + span: + start: 2318 + end: 2321 + - file_id: 0 + span: + start: 2861 + end: 2864 + - file_id: 0 + span: + start: 2869 + end: 2872 + - file_id: 0 + span: + start: 3053 + end: 3056 + - file_id: 0 + span: + start: 3061 + end: 3064 + - file_id: 0 + span: + start: 3069 + end: 3072 + - file_id: 0 + span: + start: 3265 + end: 3268 + - file_id: 0 + span: + start: 3273 + end: 3276 + - file_id: 0 + span: + start: 3281 + end: 3284 + - file_id: 0 + span: + start: 3477 + end: 3480 + - file_id: 0 + span: + start: 3485 + end: 3488 + - file_id: 0 + span: + start: 3493 + end: 3496 + - file_id: 0 + span: + start: 3689 + end: 3692 + - file_id: 0 + span: + start: 3697 + end: 3700 + - file_id: 0 + span: + start: 3705 + end: 3708 + - file_id: 0 + span: + start: 4007 + end: 4010 + - file_id: 0 + span: + start: 4015 + end: 4018 + - file_id: 0 + span: + start: 4023 + end: 4026 + - file_id: 0 + span: + start: 4222 + end: 4225 + - file_id: 0 + span: + start: 4230 + end: 4233 + - file_id: 0 + span: + start: 4238 + end: 4241 + - file_id: 0 + span: + start: 4333 + end: 4336 + - file_id: 0 + span: + start: 4341 + end: 4344 + - file_id: 0 + span: + start: 4349 + end: 4352 + - file_id: 0 + span: + start: 4444 + end: 4447 + - file_id: 0 + span: + start: 4452 + end: 4455 + - file_id: 0 + span: + start: 4460 + end: 4463 + - file_id: 0 + span: + start: 4553 + end: 4556 + - file_id: 0 + span: + start: 4561 + end: 4564 + - file_id: 0 + span: + start: 4569 + end: 4572 + - file_id: 0 + span: + start: 4659 + end: 4662 + - file_id: 0 + span: + start: 4667 + end: 4670 + - file_id: 0 + span: + start: 4675 + end: 4678 + - file_id: 0 + span: + start: 4878 + end: 4881 + - file_id: 0 + span: + start: 4886 + end: 4889 + - file_id: 0 + span: + start: 4987 + end: 4990 + - file_id: 0 + span: + start: 5215 + end: 5218 + - file_id: 0 + span: + start: 5449 + end: 5452 + - file_id: 0 + span: + start: 5559 + end: 5562 + - file_id: 0 + span: + start: 6264 + end: 6267 + - file_id: 0 + span: + start: 6365 + end: 6368 + - file_id: 0 + span: + start: 6466 + end: 6469 + - file_id: 0 + span: + start: 6567 + end: 6570 + - file_id: 0 + span: + start: 6668 + end: 6671 + - file_id: 0 + span: + start: 6769 + end: 6772 + - file_id: 0 + span: + start: 6857 + end: 6860 + - file_id: 0 + span: + start: 6966 + end: 6969 + - file_id: 0 + span: + start: 7074 + end: 7077 + - file_id: 0 + span: + start: 7181 + end: 7184 + - file_id: 0 + span: + start: 7282 + end: 7285 + - file_id: 0 + span: + start: 7386 + end: 7389 + - file_id: 0 + span: + start: 19388 + end: 19391 + - file_id: 0 + span: + start: 19708 + end: 19711 + - file_id: 0 + span: + start: 19892 + end: 19895 + - file_id: 0 + span: + start: 7565 + end: 7568 + - file_id: 0 + span: + start: 7577 + end: 7580 + - file_id: 0 + span: + start: 7699 + end: 7702 + - file_id: 0 + span: + start: 7711 + end: 7714 + - file_id: 0 + span: + start: 7833 + end: 7836 + - file_id: 0 + span: + start: 7845 + end: 7848 + - file_id: 0 + span: + start: 8178 + end: 8181 + - file_id: 0 + span: + start: 8190 + end: 8193 + - file_id: 0 + span: + start: 8318 + end: 8321 + - file_id: 0 + span: + start: 8330 + end: 8333 + - file_id: 0 + span: + start: 8461 + end: 8464 + - file_id: 0 + span: + start: 8473 + end: 8476 + - file_id: 0 + span: + start: 8595 + end: 8598 + - file_id: 0 + span: + start: 8607 + end: 8610 + - file_id: 0 + span: + start: 8828 + end: 8831 + - file_id: 0 + span: + start: 12971 + end: 12974 + - file_id: 0 + span: + start: 12983 + end: 12986 + - file_id: 0 + span: + start: 13103 + end: 13106 + - file_id: 0 + span: + start: 13115 + end: 13118 + - file_id: 0 + span: + start: 13235 + end: 13238 + - file_id: 0 + span: + start: 13247 + end: 13250 + - file_id: 0 + span: + start: 13367 + end: 13370 + - file_id: 0 + span: + start: 13379 + end: 13382 + - file_id: 0 + span: + start: 13499 + end: 13502 + - file_id: 0 span: - start: 4 - end: 7 - - name: 91 - parent: 0 - declaration: - Module: 0 - symbols: - ? - Value - - 93 - : Function: - func_index: 38 - ? - Value - - 94 - : Function: - func_index: 39 - ? - Value - - 95 - : Function: - func_index: 40 - ? - Value - - 97 - : Function: - func_index: 41 - ? - Value - - 98 - : Function: - func_index: 42 - ? - Value - - 99 - : Function: - func_index: 43 - ? - Value - - 100 - : Function: - func_index: 44 - ? - Value - - 101 - : Function: - func_index: 45 - wildcard_imports: [] - accesses: [] -module_decls: - - namespace_idx: 1 - declaring_file_id: 0 - own_file_id: ~ - name: - inner: 91 - span: - start: 4557 - end: 4560 - pub_span: - start: 4546 - end: 4549 -import_decls: [] -enums: [] -exports: - 118: - Function: - internal_name: - inner: 118 + start: 13511 + end: 13514 + - file_id: 0 span: - start: 124 - end: 128 - external_name: ~ - id: 107 -structs: - - id: 71 - file_id: 0 - namespace: 0 - pub_span: - start: 3581 - end: 3584 - name: - inner: 82 - span: - start: 3592 - end: 3598 - type_params: - - name: - inner: 5 - span: - start: 3599 - end: 3602 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3604 - end: 3610 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3628 - end: 3631 - - file_id: 0 - span: - start: 3654 - end: 3657 - attributes: [] - fields: - - name: - inner: 81 - span: - start: 3622 - end: 3626 - ty: - inner: 91 - span: - start: 3628 - end: 3637 - pub_span: - start: 3618 - end: 3621 - accesses: - - kind: Init - file_id: 0 - span: - start: 3759 - end: 3763 - - kind: Init - file_id: 0 - span: - start: 3915 - end: 3919 - - name: - inner: 83 - span: - start: 3647 - end: 3652 - ty: - inner: 91 - span: - start: 3654 - end: 3663 - pub_span: - start: 3643 - end: 3646 - accesses: - - kind: Init - file_id: 0 - span: - start: 3781 - end: 3786 - - kind: Init - file_id: 0 - span: - start: 3891 - end: 3896 - lookup: - 81: 0 - 83: 1 - accesses: + start: 13612 + end: 13615 - file_id: 0 span: - start: 3686 - end: 3692 + start: 13737 + end: 13740 - file_id: 0 span: - start: 4051 - end: 4057 + start: 13749 + end: 13752 - file_id: 0 span: - start: 4218 - end: 4224 + start: 13875 + end: 13878 - file_id: 0 span: - start: 4462 - end: 4468 - - id: 106 - file_id: 1 - namespace: ~ - pub_span: ~ - name: - inner: 117 - span: - start: 19 - end: 22 - type_params: [] - attributes: [] - fields: - - name: - inner: 91 - span: - start: 33 - end: 36 - ty: - inner: 10 - span: - start: 38 - end: 41 - pub_span: - start: 29 - end: 32 - accesses: - - kind: Init - file_id: 1 - span: - start: 94 - end: 97 - - name: - inner: 18 - span: - start: 51 - end: 54 - ty: - inner: 10 - span: - start: 56 - end: 59 - pub_span: - start: 47 - end: 50 - accesses: [] - lookup: - 18: 1 - 91: 0 - accesses: - - file_id: 1 + start: 13887 + end: 13890 + - file_id: 0 + span: + start: 14016 + end: 14019 + - file_id: 0 + span: + start: 14028 + end: 14031 + - file_id: 0 + span: + start: 14148 + end: 14151 + - file_id: 0 + span: + start: 14160 + end: 14163 + - file_id: 0 + span: + start: 14280 + end: 14283 + - file_id: 0 + span: + start: 14292 + end: 14295 + - file_id: 0 + span: + start: 14402 + end: 14405 + - file_id: 0 + span: + start: 14518 + end: 14521 + - file_id: 0 + span: + start: 14530 + end: 14533 + - file_id: 0 + span: + start: 14650 + end: 14653 + - file_id: 0 + span: + start: 14662 + end: 14665 + - file_id: 0 + span: + start: 14782 + end: 14785 + - file_id: 0 + span: + start: 14794 + end: 14797 + - file_id: 0 + span: + start: 15187 + end: 15190 + - file_id: 0 + span: + start: 15199 + end: 15202 + - file_id: 0 + span: + start: 15325 + end: 15328 + - file_id: 0 + span: + start: 15337 + end: 15340 + - file_id: 0 + span: + start: 15466 + end: 15469 + - file_id: 0 + span: + start: 15478 + end: 15481 + - file_id: 0 + span: + start: 15598 + end: 15601 + - file_id: 0 + span: + start: 15610 + end: 15613 + - file_id: 0 + span: + start: 15852 + end: 15855 + - file_id: 0 + span: + start: 15969 + end: 15972 + - file_id: 0 + span: + start: 15981 + end: 15984 + - file_id: 0 + span: + start: 16103 + end: 16106 + - file_id: 0 + span: + start: 16115 + end: 16118 + - file_id: 0 + span: + start: 16237 + end: 16240 + - file_id: 0 + span: + start: 16249 + end: 16252 + - file_id: 0 + span: + start: 16371 + end: 16374 + - file_id: 0 + span: + start: 16383 + end: 16386 + - file_id: 0 + span: + start: 16505 + end: 16508 + - file_id: 0 + span: + start: 16517 + end: 16520 + - file_id: 0 + span: + start: 16620 + end: 16623 + - file_id: 0 + span: + start: 16747 + end: 16750 + - file_id: 0 + span: + start: 16759 + end: 16762 + - file_id: 0 + span: + start: 16887 + end: 16890 + - file_id: 0 + span: + start: 16899 + end: 16902 + - file_id: 0 + span: + start: 17030 + end: 17033 + - file_id: 0 + span: + start: 17042 + end: 17045 + - file_id: 0 + span: + start: 17164 + end: 17167 + - file_id: 0 + span: + start: 17176 + end: 17179 + - file_id: 0 + span: + start: 17298 + end: 17301 + - file_id: 0 + span: + start: 17310 + end: 17313 + - file_id: 0 + span: + start: 17422 + end: 17425 + - file_id: 0 + span: + start: 17540 + end: 17543 + - file_id: 0 + span: + start: 17552 + end: 17555 + - file_id: 0 + span: + start: 17674 + end: 17677 + - file_id: 0 + span: + start: 17686 + end: 17689 + - file_id: 0 + span: + start: 17808 + end: 17811 + - file_id: 0 + span: + start: 17820 + end: 17823 + - file_id: 0 + span: + start: 18219 + end: 18222 + - file_id: 0 + span: + start: 18231 + end: 18234 + - file_id: 0 span: - start: 77 - end: 80 - - file_id: 1 + start: 18359 + end: 18362 + - file_id: 0 span: - start: 87 - end: 90 -traits: - - id: 45 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 70 - span: - start: 2629 - end: 2640 - self_type_param: - name: - inner: 73 + start: 18371 + end: 18374 + - file_id: 0 span: - start: 2629 - end: 2640 - bounds: - traits: - - trait_index: 0 - bindings: [] - span: - start: 2629 - end: 2640 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2689 - end: 2693 - entries: - 10: - AssocType: 1 - bounds: - traits: [] - typeset: ~ - - id: 47 - file_id: 0 - namespace: 0 - pub_span: ~ - name: - inner: 71 - span: - start: 2706 - end: 2715 - self_type_param: - name: - inner: 73 + start: 18502 + end: 18505 + - file_id: 0 span: - start: 2706 - end: 2715 - bounds: - traits: - - trait_index: 1 - bindings: [] - span: - start: 2706 - end: 2715 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 2766 - end: 2770 - entries: - 72: - AssocType: 2 - bounds: - traits: [] - typeset: ~ - - id: 70 - file_id: 0 - namespace: 0 - pub_span: - start: 3259 - end: 3262 - name: - inner: 6 - span: - start: 3269 - end: 3275 - self_type_param: - name: - inner: 73 + start: 18514 + end: 18517 + - file_id: 0 span: - start: 3269 - end: 3275 - bounds: - traits: - - trait_index: 2 - bindings: [] - span: - start: 3269 - end: 3275 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 3371 - end: 3375 - - file_id: 0 - span: - start: 3422 - end: 3426 - - file_id: 0 - span: - start: 3437 - end: 3441 - - file_id: 0 - span: - start: 3533 - end: 3537 - entries: - 9: - AssocType: 0 - 76: - AssocConstant: 2 - 77: - AssocConstant: 3 - 79: - Method: 47 - 81: - Method: 48 - bounds: - traits: [] - typeset: ~ - - id: 79 + start: 18636 + end: 18639 + - file_id: 0 + span: + start: 18648 + end: 18651 + - file_id: 0 + span: + start: 18894 + end: 18897 + - file_id: 0 + span: + start: 19022 + end: 19025 + - file_id: 0 + span: + start: 19034 + end: 19037 + - file_id: 0 + span: + start: 19164 + end: 19167 + - file_id: 0 + span: + start: 19176 + end: 19179 + - file_id: 0 + span: + start: 19309 + end: 19312 + - file_id: 0 + span: + start: 19321 + end: 19324 + - id: 5 file_id: 0 namespace: 0 pub_span: - start: 3955 - end: 3958 + start: 151 + end: 154 name: - inner: 87 - span: - start: 3965 - end: 3974 - self_type_param: - name: - inner: 73 - span: - start: 3965 - end: 3974 - bounds: - traits: - - trait_index: 3 - bindings: [] - span: - start: 3965 - end: 3974 - typeset: ~ - accesses: - - file_id: 0 - span: - start: 4021 - end: 4025 - - file_id: 0 - span: - start: 4130 - end: 4134 - - file_id: 0 - span: - start: 4146 - end: 4150 - - file_id: 0 - span: - start: 4165 - end: 4169 - - file_id: 0 - span: - start: 4343 - end: 4347 - - file_id: 0 - span: - start: 4359 - end: 4363 - - file_id: 0 - span: - start: 4370 - end: 4374 - - file_id: 0 - span: - start: 4390 - end: 4394 - - file_id: 0 - span: - start: 4037 - end: 4041 - - file_id: 0 - span: - start: 4058 - end: 4062 - - file_id: 0 - span: - start: 4073 - end: 4077 - - file_id: 0 - span: - start: 4240 - end: 4244 - - file_id: 0 - span: - start: 4490 - end: 4494 - entries: - 5: - AssocType: 11 - 88: - Method: 51 - 90: - Method: 52 - 92: - Method: 53 - bounds: - traits: [] - typeset: ~ -trait_impls: - - id: 49 - trait_index: 0 - type_params: [] - target: - inner: 6 - span: - start: 2798 - end: 2800 - members: - 10: - AssocType: 3 - file_id: 0 - - id: 51 - trait_index: 0 - type_params: [] - target: - inner: 8 - span: - start: 2849 - end: 2852 - members: - 10: - AssocType: 4 - file_id: 0 - - id: 53 - trait_index: 0 - type_params: [] - target: - inner: 10 - span: - start: 2902 - end: 2905 - members: - 10: - AssocType: 5 - file_id: 0 - - id: 55 - trait_index: 0 - type_params: [] - target: - inner: 12 - span: - start: 2955 - end: 2958 - members: - 10: - AssocType: 6 - file_id: 0 - - id: 57 - trait_index: 1 - type_params: [] - target: inner: 7 span: - start: 3006 - end: 3008 - members: - 72: - AssocType: 7 - file_id: 0 - - id: 59 - trait_index: 1 - type_params: [] - target: - inner: 9 - span: - start: 3057 - end: 3060 - members: - 72: - AssocType: 8 - file_id: 0 - - id: 61 - trait_index: 1 - type_params: [] - target: - inner: 11 - span: - start: 3110 - end: 3113 - members: - 72: - AssocType: 9 - file_id: 0 - - id: 63 - trait_index: 1 + start: 160 + end: 163 + attributes: + - Intrinsic type_params: [] - target: - inner: 13 - span: - start: 3163 - end: 3166 - members: - 72: - AssocType: 10 - file_id: 0 -constants: - - id: 0 + body: 10 + accesses: + - file_id: 0 + span: + start: 1322 + end: 1325 + - file_id: 0 + span: + start: 20127 + end: 20130 + - file_id: 0 + span: + start: 2256 + end: 2259 + - file_id: 0 + span: + start: 3742 + end: 3745 + - file_id: 0 + span: + start: 3750 + end: 3753 + - file_id: 0 + span: + start: 3758 + end: 3761 + - file_id: 0 + span: + start: 4060 + end: 4063 + - file_id: 0 + span: + start: 4068 + end: 4071 + - file_id: 0 + span: + start: 4076 + end: 4079 + - file_id: 0 + span: + start: 4712 + end: 4715 + - file_id: 0 + span: + start: 4720 + end: 4723 + - file_id: 0 + span: + start: 4728 + end: 4731 + - file_id: 0 + span: + start: 5044 + end: 5047 + - file_id: 0 + span: + start: 5272 + end: 5275 + - file_id: 0 + span: + start: 5504 + end: 5507 + - file_id: 0 + span: + start: 5614 + end: 5617 + - file_id: 0 + span: + start: 7477 + end: 7480 + - file_id: 0 + span: + start: 7611 + end: 7614 + - file_id: 0 + span: + start: 7745 + end: 7748 + - file_id: 0 + span: + start: 7879 + end: 7882 + - file_id: 0 + span: + start: 7980 + end: 7983 + - file_id: 0 + span: + start: 8084 + end: 8087 + - file_id: 0 + span: + start: 8226 + end: 8229 + - file_id: 0 + span: + start: 8367 + end: 8370 + - file_id: 0 + span: + start: 8507 + end: 8510 + - file_id: 0 + span: + start: 8641 + end: 8644 + - file_id: 0 + span: + start: 8745 + end: 8748 + - file_id: 0 + span: + start: 19383 + end: 19386 + - file_id: 0 + span: + start: 19684 + end: 19687 + - file_id: 0 + span: + start: 19918 + end: 19921 + - file_id: 0 + span: + start: 20029 + end: 20032 + - file_id: 1 + span: + start: 38 + end: 41 + - file_id: 1 + span: + start: 56 + end: 59 + - file_id: 0 + span: + start: 7585 + end: 7588 + - file_id: 0 + span: + start: 7719 + end: 7722 + - file_id: 0 + span: + start: 7853 + end: 7856 + - file_id: 0 + span: + start: 8198 + end: 8201 + - file_id: 0 + span: + start: 8338 + end: 8341 + - file_id: 0 + span: + start: 8481 + end: 8484 + - file_id: 0 + span: + start: 8615 + end: 8618 + - file_id: 0 + span: + start: 8836 + end: 8839 + - file_id: 0 + span: + start: 14914 + end: 14917 + - file_id: 0 + span: + start: 14926 + end: 14929 + - file_id: 0 + span: + start: 15046 + end: 15049 + - file_id: 0 + span: + start: 15058 + end: 15061 + - file_id: 0 + span: + start: 15730 + end: 15733 + - file_id: 0 + span: + start: 15742 + end: 15745 + - file_id: 0 + span: + start: 17942 + end: 17945 + - file_id: 0 + span: + start: 17954 + end: 17957 + - file_id: 0 + span: + start: 18076 + end: 18079 + - file_id: 0 + span: + start: 18088 + end: 18091 + - file_id: 0 + span: + start: 18770 + end: 18773 + - file_id: 0 + span: + start: 18782 + end: 18785 + - file_id: 0 + span: + start: 23305 + end: 23308 + - file_id: 0 + span: + start: 24233 + end: 24236 + - id: 6 file_id: 0 namespace: 0 - parent: ~ pub_span: - start: 0 - end: 3 - name: - inner: 1 - span: - start: 10 - end: 19 - ty: - inner: 10 - span: - start: 21 - end: 24 - value: - kind: - Int: - value: 65536 - ty: 10 - span: - start: 27 - end: 32 - const_value: - Int: 65536 - accesses: [] - attributes: [] - - id: 91 - file_id: 0 - namespace: 0 - parent: ~ - pub_span: ~ + start: 179 + end: 182 name: - inner: 102 - span: - start: 5814 - end: 5829 - ty: - inner: 6 - span: - start: 5831 - end: 5833 - value: - kind: - Int: - value: 32 - ty: 6 + inner: 8 span: - start: 5836 - end: 5847 - const_value: - Int: 32 + start: 188 + end: 191 + attributes: + - Intrinsic + type_params: [] + body: 13 accesses: - file_id: 0 span: - start: 5989 - end: 6004 + start: 2208 + end: 2211 + - file_id: 0 + span: + start: 2310 + end: 2313 + - file_id: 0 + span: + start: 2910 + end: 2913 + - file_id: 0 + span: + start: 2918 + end: 2921 + - file_id: 0 + span: + start: 3106 + end: 3109 + - file_id: 0 + span: + start: 3114 + end: 3117 + - file_id: 0 + span: + start: 3122 + end: 3125 + - file_id: 0 + span: + start: 3318 + end: 3321 + - file_id: 0 + span: + start: 3326 + end: 3329 + - file_id: 0 + span: + start: 3334 + end: 3337 + - file_id: 0 + span: + start: 3530 + end: 3533 + - file_id: 0 + span: + start: 3538 + end: 3541 + - file_id: 0 + span: + start: 3546 + end: 3549 + - file_id: 0 + span: + start: 3795 + end: 3798 + - file_id: 0 + span: + start: 3803 + end: 3806 + - file_id: 0 + span: + start: 3811 + end: 3814 + - file_id: 0 + span: + start: 4113 + end: 4116 + - file_id: 0 + span: + start: 4121 + end: 4124 + - file_id: 0 + span: + start: 4129 + end: 4132 + - file_id: 0 + span: + start: 4278 + end: 4281 + - file_id: 0 + span: + start: 4286 + end: 4289 + - file_id: 0 + span: + start: 4294 + end: 4297 + - file_id: 0 + span: + start: 4388 + end: 4391 + - file_id: 0 + span: + start: 4396 + end: 4399 + - file_id: 0 + span: + start: 4404 + end: 4407 + - file_id: 0 + span: + start: 4500 + end: 4503 + - file_id: 0 + span: + start: 4508 + end: 4511 + - file_id: 0 + span: + start: 4516 + end: 4519 + - file_id: 0 + span: + start: 4606 + end: 4609 + - file_id: 0 + span: + start: 4614 + end: 4617 + - file_id: 0 + span: + start: 4622 + end: 4625 + - file_id: 0 + span: + start: 4765 + end: 4768 + - file_id: 0 + span: + start: 4773 + end: 4776 + - file_id: 0 + span: + start: 4781 + end: 4784 + - file_id: 0 + span: + start: 4930 + end: 4933 + - file_id: 0 + span: + start: 4938 + end: 4941 + - file_id: 0 + span: + start: 5101 + end: 5104 + - file_id: 0 + span: + start: 5329 + end: 5332 + - file_id: 0 + span: + start: 5669 + end: 5672 + - file_id: 0 + span: + start: 5779 + end: 5782 + - file_id: 0 + span: + start: 8862 + end: 8865 + - file_id: 0 + span: + start: 8963 + end: 8966 + - file_id: 0 + span: + start: 9064 + end: 9067 + - file_id: 0 + span: + start: 9165 + end: 9168 + - file_id: 0 + span: + start: 9266 + end: 9269 + - file_id: 0 + span: + start: 9367 + end: 9370 + - file_id: 0 + span: + start: 9455 + end: 9458 + - file_id: 0 + span: + start: 9564 + end: 9567 + - file_id: 0 + span: + start: 9672 + end: 9675 + - file_id: 0 + span: + start: 9779 + end: 9782 + - file_id: 0 + span: + start: 9880 + end: 9883 + - file_id: 0 + span: + start: 9984 + end: 9987 + - file_id: 0 + span: + start: 19398 + end: 19401 + - file_id: 0 + span: + start: 19761 + end: 19764 + - file_id: 0 + span: + start: 19945 + end: 19948 + - file_id: 0 + span: + start: 10163 + end: 10166 + - file_id: 0 + span: + start: 10175 + end: 10178 + - file_id: 0 + span: + start: 10297 + end: 10300 + - file_id: 0 + span: + start: 10309 + end: 10312 + - file_id: 0 + span: + start: 10431 + end: 10434 + - file_id: 0 + span: + start: 10443 + end: 10446 + - file_id: 0 + span: + start: 10776 + end: 10779 + - file_id: 0 + span: + start: 10788 + end: 10791 + - file_id: 0 + span: + start: 10916 + end: 10919 + - file_id: 0 + span: + start: 10928 + end: 10931 + - file_id: 0 + span: + start: 11059 + end: 11062 + - file_id: 0 + span: + start: 11071 + end: 11074 + - file_id: 0 + span: + start: 11193 + end: 11196 + - file_id: 0 + span: + start: 11205 + end: 11208 - file_id: 0 span: - start: 6192 - end: 6207 - attributes: [] - - id: 66 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 76 - span: - start: 3331 - end: 3343 - ty: - inner: 10 - span: - start: 3345 - end: 3348 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 67 - file_id: 0 - namespace: 0 - parent: - Trait: 2 - pub_span: ~ - name: - inner: 77 - span: - start: 3361 - end: 3369 - ty: - inner: 22 - span: - start: 3371 - end: 3380 - value: ~ - const_value: ~ - accesses: [] - attributes: [] - - id: 39 + start: 11426 + end: 11429 + - id: 7 file_id: 0 namespace: 0 - parent: - Impl: 14 pub_span: - start: 2452 - end: 2455 + start: 207 + end: 210 name: - inner: 65 - span: - start: 2462 - end: 2464 - ty: - inner: 14 - span: - start: 2462 - end: 2464 - value: - kind: - Float: - value: 3.141592653589793 - ty: 14 + inner: 9 span: - start: 2472 - end: 2494 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] - - id: 41 + start: 216 + end: 219 + attributes: + - Intrinsic + type_params: [] + body: 12 + accesses: + - file_id: 0 + span: + start: 2264 + end: 2267 + - file_id: 0 + span: + start: 3848 + end: 3851 + - file_id: 0 + span: + start: 3856 + end: 3859 + - file_id: 0 + span: + start: 3864 + end: 3867 + - file_id: 0 + span: + start: 4166 + end: 4169 + - file_id: 0 + span: + start: 4174 + end: 4177 + - file_id: 0 + span: + start: 4182 + end: 4185 + - file_id: 0 + span: + start: 4818 + end: 4821 + - file_id: 0 + span: + start: 4826 + end: 4829 + - file_id: 0 + span: + start: 4834 + end: 4837 + - file_id: 0 + span: + start: 5158 + end: 5161 + - file_id: 0 + span: + start: 5386 + end: 5389 + - file_id: 0 + span: + start: 5724 + end: 5727 + - file_id: 0 + span: + start: 5834 + end: 5837 + - file_id: 0 + span: + start: 10075 + end: 10078 + - file_id: 0 + span: + start: 10209 + end: 10212 + - file_id: 0 + span: + start: 10343 + end: 10346 + - file_id: 0 + span: + start: 10477 + end: 10480 + - file_id: 0 + span: + start: 10578 + end: 10581 + - file_id: 0 + span: + start: 10682 + end: 10685 + - file_id: 0 + span: + start: 10824 + end: 10827 + - file_id: 0 + span: + start: 10965 + end: 10968 + - file_id: 0 + span: + start: 11105 + end: 11108 + - file_id: 0 + span: + start: 11239 + end: 11242 + - file_id: 0 + span: + start: 11343 + end: 11346 + - file_id: 0 + span: + start: 19393 + end: 19396 + - file_id: 0 + span: + start: 19737 + end: 19740 + - file_id: 0 + span: + start: 19971 + end: 19974 + - file_id: 0 + span: + start: 20034 + end: 20037 + - file_id: 0 + span: + start: 10183 + end: 10186 + - file_id: 0 + span: + start: 10317 + end: 10320 + - file_id: 0 + span: + start: 10451 + end: 10454 + - file_id: 0 + span: + start: 10796 + end: 10799 + - file_id: 0 + span: + start: 10936 + end: 10939 + - file_id: 0 + span: + start: 11079 + end: 11082 + - file_id: 0 + span: + start: 11213 + end: 11216 + - file_id: 0 + span: + start: 11434 + end: 11437 + - id: 8 file_id: 0 namespace: 0 - parent: - Impl: 15 pub_span: - start: 2514 - end: 2517 - name: - inner: 65 - span: - start: 2524 - end: 2526 - ty: - inner: 15 - span: - start: 2524 - end: 2526 - value: - kind: - Float: - value: 3.141592653589793 - ty: 15 - span: - start: 2534 - end: 2556 - const_value: - Float: 3.141592653589793 - accesses: [] - attributes: [] -assoc_type_impls: - - id: 65 - file_id: 0 - name: - inner: 9 - span: - start: 3287 - end: 3291 - ty: ~ - attributes: [] - - id: 44 - file_id: 0 - name: - inner: 10 - span: - start: 2652 - end: 2658 - ty: ~ - attributes: [] - - id: 46 - file_id: 0 - name: - inner: 72 - span: - start: 2727 - end: 2735 - ty: ~ - attributes: [] - - id: 48 - file_id: 0 - name: - inner: 10 - span: - start: 2812 - end: 2818 - ty: - inner: 7 - span: - start: 2821 - end: 2823 - attributes: [] - - id: 50 - file_id: 0 + start: 235 + end: 238 name: inner: 10 span: - start: 2864 - end: 2870 - ty: - inner: 9 - span: - start: 2873 - end: 2876 - attributes: [] - - id: 52 + start: 244 + end: 247 + attributes: + - Intrinsic + type_params: [] + body: 14 + accesses: + - file_id: 0 + span: + start: 2360 + end: 2363 + - file_id: 0 + span: + start: 2368 + end: 2371 + - file_id: 0 + span: + start: 2459 + end: 2462 + - file_id: 0 + span: + start: 2467 + end: 2470 + - file_id: 0 + span: + start: 2559 + end: 2562 + - file_id: 0 + span: + start: 2567 + end: 2570 + - file_id: 0 + span: + start: 2660 + end: 2663 + - file_id: 0 + span: + start: 2668 + end: 2671 + - file_id: 0 + span: + start: 2761 + end: 2764 + - file_id: 0 + span: + start: 2769 + end: 2772 + - file_id: 0 + span: + start: 2959 + end: 2962 + - file_id: 0 + span: + start: 2967 + end: 2970 + - file_id: 0 + span: + start: 3159 + end: 3162 + - file_id: 0 + span: + start: 3167 + end: 3170 + - file_id: 0 + span: + start: 3175 + end: 3178 + - file_id: 0 + span: + start: 3371 + end: 3374 + - file_id: 0 + span: + start: 3379 + end: 3382 + - file_id: 0 + span: + start: 3387 + end: 3390 + - file_id: 0 + span: + start: 3583 + end: 3586 + - file_id: 0 + span: + start: 3591 + end: 3594 + - file_id: 0 + span: + start: 3599 + end: 3602 + - file_id: 0 + span: + start: 3901 + end: 3904 + - file_id: 0 + span: + start: 3909 + end: 3912 + - file_id: 0 + span: + start: 3917 + end: 3920 + - file_id: 0 + span: + start: 4995 + end: 4998 + - file_id: 0 + span: + start: 5052 + end: 5055 + - file_id: 0 + span: + start: 5109 + end: 5112 + - file_id: 0 + span: + start: 5166 + end: 5169 + - file_id: 0 + span: + start: 5441 + end: 5444 + - file_id: 0 + span: + start: 5496 + end: 5499 + - file_id: 0 + span: + start: 5661 + end: 5664 + - file_id: 0 + span: + start: 5716 + end: 5719 + - file_id: 0 + span: + start: 5883 + end: 5886 + - file_id: 0 + span: + start: 5947 + end: 5950 + - file_id: 0 + span: + start: 5958 + end: 5961 + - file_id: 0 + span: + start: 5982 + end: 5985 + - file_id: 0 + span: + start: 11460 + end: 11463 + - file_id: 0 + span: + start: 11561 + end: 11564 + - file_id: 0 + span: + start: 11662 + end: 11665 + - file_id: 0 + span: + start: 11763 + end: 11766 + - file_id: 0 + span: + start: 11864 + end: 11867 + - file_id: 0 + span: + start: 11949 + end: 11952 + - id: 9 file_id: 0 + namespace: 0 + pub_span: + start: 263 + end: 266 name: - inner: 10 - span: - start: 2917 - end: 2923 - ty: inner: 11 span: - start: 2926 - end: 2929 - attributes: [] - - id: 54 - file_id: 0 - name: - inner: 10 - span: - start: 2970 - end: 2976 - ty: - inner: 13 - span: - start: 2979 - end: 2982 - attributes: [] - - id: 56 - file_id: 0 - name: - inner: 72 - span: - start: 3020 - end: 3028 - ty: - inner: 6 - span: - start: 3031 - end: 3033 - attributes: [] - - id: 58 - file_id: 0 - name: - inner: 72 - span: - start: 3072 - end: 3080 - ty: - inner: 8 - span: - start: 3083 - end: 3086 - attributes: [] - - id: 60 - file_id: 0 - name: - inner: 72 - span: - start: 3125 - end: 3133 - ty: - inner: 10 - span: - start: 3136 - end: 3139 - attributes: [] - - id: 62 + start: 272 + end: 275 + attributes: + - Intrinsic + type_params: [] + body: 15 + accesses: + - file_id: 0 + span: + start: 2410 + end: 2413 + - file_id: 0 + span: + start: 2418 + end: 2421 + - file_id: 0 + span: + start: 2508 + end: 2511 + - file_id: 0 + span: + start: 2516 + end: 2519 + - file_id: 0 + span: + start: 2610 + end: 2613 + - file_id: 0 + span: + start: 2618 + end: 2621 + - file_id: 0 + span: + start: 2710 + end: 2713 + - file_id: 0 + span: + start: 2718 + end: 2721 + - file_id: 0 + span: + start: 2812 + end: 2815 + - file_id: 0 + span: + start: 2820 + end: 2823 + - file_id: 0 + span: + start: 3008 + end: 3011 + - file_id: 0 + span: + start: 3016 + end: 3019 + - file_id: 0 + span: + start: 3212 + end: 3215 + - file_id: 0 + span: + start: 3220 + end: 3223 + - file_id: 0 + span: + start: 3228 + end: 3231 + - file_id: 0 + span: + start: 3424 + end: 3427 + - file_id: 0 + span: + start: 3432 + end: 3435 + - file_id: 0 + span: + start: 3440 + end: 3443 + - file_id: 0 + span: + start: 3636 + end: 3639 + - file_id: 0 + span: + start: 3644 + end: 3647 + - file_id: 0 + span: + start: 3652 + end: 3655 + - file_id: 0 + span: + start: 3954 + end: 3957 + - file_id: 0 + span: + start: 3962 + end: 3965 + - file_id: 0 + span: + start: 3970 + end: 3973 + - file_id: 0 + span: + start: 5223 + end: 5226 + - file_id: 0 + span: + start: 5280 + end: 5283 + - file_id: 0 + span: + start: 5337 + end: 5340 + - file_id: 0 + span: + start: 5394 + end: 5397 + - file_id: 0 + span: + start: 5551 + end: 5554 + - file_id: 0 + span: + start: 5606 + end: 5609 + - file_id: 0 + span: + start: 5771 + end: 5774 + - file_id: 0 + span: + start: 5826 + end: 5829 + - file_id: 0 + span: + start: 5891 + end: 5894 + - file_id: 0 + span: + start: 5939 + end: 5942 + - file_id: 0 + span: + start: 6107 + end: 6110 + - file_id: 0 + span: + start: 6131 + end: 6134 + - file_id: 0 + span: + start: 12172 + end: 12175 + - file_id: 0 + span: + start: 12273 + end: 12276 + - file_id: 0 + span: + start: 12374 + end: 12377 + - file_id: 0 + span: + start: 12475 + end: 12478 + - file_id: 0 + span: + start: 12576 + end: 12579 + - file_id: 0 + span: + start: 12661 + end: 12664 + - id: 10 file_id: 0 + namespace: 0 + pub_span: + start: 291 + end: 294 name: - inner: 72 - span: - start: 3178 - end: 3186 - ty: inner: 12 span: - start: 3189 - end: 3192 - attributes: [] - - id: 75 - file_id: 0 - name: - inner: 5 - span: - start: 3986 - end: 3989 - ty: ~ - attributes: [] -typesets: - - id: 43 + start: 300 + end: 304 + attributes: + - Intrinsic + type_params: [] + body: 16 + accesses: + - file_id: 0 + span: + start: 18927 + end: 18931 + - file_id: 0 + span: + start: 19071 + end: 19075 + - file_id: 0 + span: + start: 19214 + end: 19218 + - file_id: 0 + span: + start: 21554 + end: 21558 + - file_id: 0 + span: + start: 23281 + end: 23285 + - file_id: 0 + span: + start: 23378 + end: 23382 + - file_id: 0 + span: + start: 23480 + end: 23484 + - file_id: 0 + span: + start: 23583 + end: 23587 + - file_id: 0 + span: + start: 23714 + end: 23718 + - file_id: 0 + span: + start: 23819 + end: 23823 + - file_id: 0 + span: + start: 24010 + end: 24014 + - file_id: 0 + span: + start: 24209 + end: 24213 + - file_id: 0 + span: + start: 24323 + end: 24327 + - file_id: 0 + span: + start: 24515 + end: 24519 + - file_id: 0 + span: + start: 24746 + end: 24750 + - file_id: 0 + span: + start: 19042 + end: 19046 + - file_id: 0 + span: + start: 19184 + end: 19188 + - file_id: 0 + span: + start: 19329 + end: 19333 + - id: 11 file_id: 0 namespace: 0 - name: - inner: 66 - span: - start: 2573 - end: 2580 pub_span: - start: 2561 - end: 2564 - members: - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - intersection_range: - min: 0 - max: 127 - accesses: [] - attributes: [] - - id: 64 - file_id: 0 - namespace: 0 + start: 320 + end: 323 name: - inner: 26 + inner: 13 span: - start: 3233 - end: 3244 - pub_span: - start: 3221 - end: 3224 - members: - - 10 - - 12 - intersection_range: - min: 0 - max: 4294967295 + start: 329 + end: 333 + attributes: + - Intrinsic + type_params: [] + body: 17 accesses: - file_id: 0 span: - start: 3293 - end: 3304 + start: 22825 + end: 22829 - file_id: 0 span: - start: 710 - end: 721 + start: 22885 + end: 22889 + - file_id: 0 + span: + start: 23088 + end: 23092 + - file_id: 0 + span: + start: 22979 + end: 22983 + - file_id: 0 + span: + start: 23182 + end: 23186 + - id: 12 + file_id: 0 + namespace: 0 + pub_span: + start: 349 + end: 352 + name: + inner: 14 + span: + start: 358 + end: 363 attributes: - - Tag: 119 -type_aliases: [] + - Intrinsic + type_params: [] + body: 3 + accesses: [] diff --git a/crates/wx-compiler/src/tir/tests.rs b/crates/wx-compiler/src/tir/tests.rs index 2021b4b..1932a4f 100644 --- a/crates/wx-compiler/src/tir/tests.rs +++ b/crates/wx-compiler/src/tir/tests.rs @@ -486,8 +486,8 @@ fn test_generic_call_arg_mismatch_preserves_function_body() { let case = TestCase::new(indoc! {" #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 }; - fn make_ptr() -> heap::*mut u16 { unreachable } - fn f(count: heap::Size) -> heap::[]u8 { + fn make_ptr() -> heap::&u16 { unreachable } + fn f(count: heap::Size) -> heap::&[u8] { local ptr = make_ptr(); std::slice_from_parts(ptr, count) } @@ -550,7 +550,7 @@ fn test_local_with_pointer_type_annotation_dereference_recovers() { memory heap: Memory where { Size = u32 } struct Node { x: i32 } fn write(x: i32) { - local p: heap::*mut Node = alloc_node() + local p: heap::*Node = alloc_node() p.*.x = x } export { write } @@ -589,7 +589,7 @@ fn test_compare_mutable_pointer_with_null() { #[memory_limits(min_pages = 1)] memory heap: Memory where { Size = u32 } struct Node { x: i32 } - fn is_null(p: heap::*Node) -> bool { + fn is_null(p: heap::&Node) -> bool { p == ptr::null() } export { is_null } @@ -679,8 +679,10 @@ fn test_coerce_int_overflow_i32() { #[test] fn test_coerce_int_negative_for_u32() { let case = TestCase::new("fn f() -> u32 { -1 } export { f }"); - // `-1` is `Unary { InvertSign, Int(1) }` — coerce_untyped_unary_expr only - // allows InvertSign for i32/i64, so u32 produces E1005 (UnableToCoerce). + // `-1` is `Unary { InvertSign, Int(1) }` — coerce_untyped_unary_expr + // allows InvertSign for any signed numeric target (i8/i16/i32/i64/ + // f32/f64) but deliberately excludes unsigned targets, so u32 + // produces E1005 (UnableToCoerce). assert!( has_error_code(&case.tir, DiagnosticCode::UnableToCoerce), "expected E1005 (UnableToCoerce) for negated literal coerced to u32, got: {:?}", @@ -692,6 +694,134 @@ fn test_coerce_int_negative_for_u32() { ); } +#[test] +fn test_coerce_negated_literal_to_every_signed_width_and_float() { + // Regression test: `coerce_untyped_unary_expr`'s target-type allowlist + // used to only accept i32/i64 for `InvertSign`, rejecting `-1`/`-1.5` + // coerced to any other signed numeric type. + let case = TestCase::new(indoc! {" + fn a() -> i8 { -1 } + fn b() -> i16 { -1 } + fn c() -> i32 { -1 } + fn d() -> i64 { -1 } + fn e() -> f32 { -1.5 } + fn f() -> f64 { -1.5 } + export { a, b, c, d, e, f } + "}); + no_errors(&case); +} + +#[test] +fn test_coerce_min_value_literal_for_every_signed_width() { + // Regression test: two's-complement's negative range holds one more + // magnitude than its positive range (`i8::MIN` is `-128` but `i8::MAX` + // is only `127`) — `coerce_untyped_unary_expr` used to range-check the + // un-negated magnitude against the ordinary positive-max bound, + // wrongly rejecting exactly the most-negative value of each width. + let case = TestCase::new(indoc! {" + fn a() -> i8 { -128 } + fn b() -> i16 { -32768 } + fn c() -> i32 { -2147483648 } + fn d() -> i64 { -9223372036854775808 } + export { a, b, c, d } + "}); + no_errors(&case); +} + +#[test] +fn test_coerce_one_past_min_value_literal_still_out_of_range() { + let case = TestCase::new("fn f() -> i8 { -129 } export { f }"); + assert!( + has_error_code(&case.tir, DiagnosticCode::IntegerLiteralOutOfRange), + "expected E1004 (out of range) for `-129i8` (one past `i8::MIN`), got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_coerce_u64_max_literal_succeeds() { + // Regression test: `parse_integer_literal` used to parse straight into + // `i64`, so any literal magnitude beyond `i64::MAX` (including + // `u64::MAX` itself, a purely positive literal with no negation + // involved) failed to parse at all. + let case = + TestCase::new("fn f() -> u64 { 18446744073709551615 } export { f }"); + no_errors(&case); +} + +#[test] +fn test_eval_const_expr_double_negated_i64_min_does_not_panic() { + // `-(-9223372036854775808)` — the inner negation must fold via + // `wrapping_neg` (not a bare `-`, which would panic on `i64::MIN`). + let case = TestCase::new( + "const X: i64 = -(-9223372036854775808); fn f() -> i64 { X } export { f }", + ); + no_errors(&case); +} + +#[test] +fn test_eval_const_expr_u64_div_uses_unsigned_semantics() { + // Regression test: `eval_const_expr`'s `Div`/`Rem` folding used to + // operate on the bit-reinterpreted `i64` unconditionally — correct + // for `Add`/`Sub`/`Mul` (representation-agnostic in two's complement) + // but wrong for division, where signed vs. unsigned interpretation of + // the same bits genuinely differ once a `u64` magnitude exceeds + // `i64::MAX`. `u64::MAX` bit-casts to `-1i64`, and `-1i64 / 2 == 0` + // under signed division — but the correct unsigned answer is + // `9223372036854775807`. + let case = TestCase::new(indoc! {" + #[tag = \"x\"] + const X: u64 = 18446744073709551615 / 2; + export {} + "}); + no_errors(&case); + let tag = case.graph.interner.get("x").unwrap(); + let def_id = *case.tir.tagged_items.get(&tag).unwrap(); + let const_index = case.tir.expect_const_index(def_id); + assert_eq!( + case.tir.constants[const_index as usize].const_value, + Some(ConstValue::Int(9223372036854775807)) + ); +} + +#[test] +fn test_eval_const_expr_u64_rem_uses_unsigned_semantics() { + let case = TestCase::new(indoc! {" + #[tag = \"x\"] + const X: u64 = 18446744073709551615 % 100; + export {} + "}); + no_errors(&case); + let tag = case.graph.interner.get("x").unwrap(); + let def_id = *case.tir.tagged_items.get(&tag).unwrap(); + let const_index = case.tir.expect_const_index(def_id); + assert_eq!( + case.tir.constants[const_index as usize].const_value, + Some(ConstValue::Int(15)) + ); +} + +#[test] +fn test_eval_const_expr_signed_div_unaffected_by_unsigned_fix() { + let case = TestCase::new(indoc! {" + #[tag = \"x\"] + const X: i64 = -10 / 3; + export {} + "}); + no_errors(&case); + let tag = case.graph.interner.get("x").unwrap(); + let def_id = *case.tir.tagged_items.get(&tag).unwrap(); + let const_index = case.tir.expect_const_index(def_id); + assert_eq!( + case.tir.constants[const_index as usize].const_value, + Some(ConstValue::Int(-3)) + ); +} + #[test] fn test_coerce_int_literal_for_float_type_errors() { // An untyped integer literal cannot be coerced to f32 (must write 1.0) @@ -1530,12 +1660,15 @@ fn test_stdlib_types_available() { ); } -/// char is a primitive type — arithmetic on chars should resolve correctly. +/// `char` deliberately has no `impl Add`/`impl Sub` of its own — matching +/// Rust, arithmetic on a `char` requires an explicit cast to an integer +/// type first (`std/main.wx`'s own `to_ascii_uppercase`/`to_ascii_lowercase` +/// use the same `(self as u8) ... as char` idiom). #[test] -fn test_stdlib_struct_field_access() { +fn test_char_arithmetic_requires_explicit_cast() { let case = TestCase::new(indoc! {" fn shift(c: char) -> char { - c - 32 + ((c as u8) - 32) as char } export { shift } @@ -1551,6 +1684,34 @@ fn test_stdlib_struct_field_access() { ); } +/// The direct-arithmetic counterpart of the above: `char - int` without a +/// cast must be rejected, not silently allowed — locks in the design +/// decision (char arithmetic is opt-in via cast, not implicit) as an +/// explicit regression test rather than an accident of `char` simply +/// lacking an impl. +#[test] +fn test_char_arithmetic_without_cast_is_error() { + let case = TestCase::new(indoc! {" + fn shift(c: char) -> char { + c - 32 + } + + export { shift } + "}); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::BinaryOperatorCannotBeApplied + ), + "expected E1008 (BinaryOperatorCannotBeApplied) for `char - int` without a cast, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + /// Accessing a method via field syntax (`p.area`, no call parens) must /// report a diagnostic (E1060) instead of panicking. #[test] @@ -2898,6 +3059,42 @@ fn test_impl_trait_function_origin_is_trait_impl() { ); } +/// Regression test: a method declared with its own generic type param +/// (`fn write(...)`, distinct from any impl-level type param) +/// previously failed to resolve that param when the method lived inside a +/// `impl Trait for Type { .. }` block — `AstNodeRef::TraitImplFunction` +/// hardcoded the new `Function`'s own `type_params` to empty and skipped +/// `resolve_type_param_bounds` entirely, unlike the exactly analogous +/// `InherentImplFunction`/`TraitFunction` arms, which both do this +/// correctly. The same signature written directly on the trait (`Hasher`'s +/// own `write`) never had this bug — only the impl providing it did. +#[test] +fn test_trait_impl_method_with_own_generic_type_param_resolves() { + let case = TestCase::new(indoc! {" + trait Hasher { + fn write(self: Mem::*Self, bytes: Mem::&[u8]); + } + + struct DefaultHasher { + value: u64, + } + + impl Hasher for DefaultHasher { + fn write(self: Mem::&Self, bytes: Mem::&[u8]) { + unreachable + } + } + "}); + let errors: Vec<_> = case + .tir + .diagnostics + .iter() + .filter(|d| d.severity == Severity::Error) + .map(|d| &d.message) + .collect(); + assert!(errors.is_empty(), "{:?}", errors); +} + #[test] fn test_self_keyword_recorded_in_impl_block_self_accesses() { let case = TestCase::new(indoc! {" @@ -3932,7 +4129,7 @@ fn test_type_alias_simple() { .iter() .find(|a| case.graph.interner.resolve(a.name.inner) == Some("Foo")) .expect("Foo alias not found"); - assert_eq!(alias.template, TypeIndex::I32); + assert_eq!(alias.body, TypeIndex::I32); } #[test] @@ -3964,7 +4161,7 @@ fn test_type_alias_generic_rhs() { case.graph.interner.resolve(a.name.inner) == Some("WrapperI32") }) .expect("WrapperI32 alias not found"); - match &case.tir.types[alias.template.as_usize()] { + match &case.tir.types[alias.body.as_usize()] { Type::Struct { args, .. } => { assert_eq!(args.len(), 1); assert_eq!(case.tir.types[args[0].as_usize()], Type::I32); @@ -4832,7 +5029,7 @@ fn test_assoc_type_projection_in_tuple_wrapper() { #[test] fn test_assoc_type_projection_in_pointer_wrapper() { // Recursive substitution must also preserve projections nested under - // pointer types. Untagged `*C::Item` resolves memory from the single + // pointer types. Untagged `&C::Item` resolves memory from the single // ambient memory declaration. let case = TestCase::new_multi_file( "main.wx", @@ -4841,10 +5038,10 @@ fn test_assoc_type_projection_in_pointer_wrapper() { trait Container { type Item; } - fn process(ptr: *C::Item) { + fn process(ptr: &C::Item) { unreachable } - fn wrap(ptr: *C::Item) { + fn wrap(ptr: &C::Item) { process(ptr) } "}, @@ -5131,12 +5328,12 @@ fn test_module_namespace_type_access() { #[test] fn test_memory_tagged_pointer() { - // `heap::*i32` resolves to Type::Pointer { memory: Some(heap_id) } + // `heap::&i32` resolves to Type::Pointer { memory: Some(heap_id) } let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(p: heap::*i32) { + fn f(p: heap::&i32) { unreachable } "}, @@ -5161,19 +5358,19 @@ fn test_memory_tagged_pointer() { }; assert!( is_heap_ptr, - "expected heap::*i32 (pointer tagged with heap), got index {}", + "expected heap::&i32 (pointer tagged with heap), got index {}", param_ty.as_u32() ); } #[test] fn test_memory_tagged_slice() { - // `heap::[]u8` resolves to Type::Slice { memory: Some(heap_id) } + // `heap::&[u8]` resolves to Type::Slice { memory: Some(heap_id) } let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(s: heap::[]u8) { + fn f(s: heap::&[u8]) { unreachable } "}, @@ -5198,19 +5395,19 @@ fn test_memory_tagged_slice() { }; assert!( is_heap_slice, - "expected heap::[]u8 (slice tagged with heap), got index {}", + "expected heap::&[u8] (slice tagged with heap), got index {}", param_ty.as_u32() ); } #[test] fn test_memory_tagged_array() { - // `heap::[4]u8` resolves to Type::Array { size: 4, memory: Some(heap_id) } + // `heap::&[u8; 4]` resolves to Type::Array { size: 4, memory: Some(heap_id) } let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]u8) { + fn f(a: heap::&[u8; 4]) { unreachable } "}, @@ -5237,19 +5434,19 @@ fn test_memory_tagged_array() { }; assert!( is_heap_array, - "expected heap::[4]u8 (array tagged with heap), got index {}", + "expected heap::&[u8; 4] (array tagged with heap), got index {}", param_ty.as_u32() ); } #[test] fn test_memory_tagged_nested_array() { - // `heap::[4]heap::[4]u8` — outer array in heap, elements are heap-tagged arrays + // `heap::&[heap::&[u8; 4]; 4]` — outer array in heap, elements are heap-tagged arrays let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]heap::[4]u8) { + fn f(a: heap::&[heap::&[u8; 4]; 4]) { unreachable } "}, @@ -5310,12 +5507,12 @@ fn test_memory_tagged_non_pointer_is_error() { #[test] fn test_untagged_and_tagged_pointer_resolve_to_same_type() { - // With one memory in scope, `*i32` and `heap::*i32` resolve to the same type. + // With one memory in scope, `&i32` and `heap::&i32` resolve to the same type. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: *i32, b: heap::*i32) { + fn f(a: &i32, b: heap::&i32) { unreachable } "}, @@ -5334,7 +5531,7 @@ fn test_untagged_and_tagged_pointer_resolve_to_same_type() { let tagged = f.params[1].ty.inner; assert_eq!( untagged, tagged, - "with one memory, *i32 and heap::*i32 should intern to the same TypeIndex" + "with one memory, &i32 and heap::&i32 should intern to the same TypeIndex" ); } @@ -5621,7 +5818,7 @@ fn test_type_application_on_non_generic_is_error() { #[test] fn test_generic_method_self_shape_mismatch_reports_clear_diagnostic() { // Regression: calling a method whose `self` requires a pointer - // (`self: *mut Self`) on a plain value receiver used to report a + // (`self: &Self`) on a plain value receiver used to report a // confusing "cannot infer type for type parameter `Self`" — // `infer_type_args` only unifies matching shapes (Pointer only binds // against Pointer), so a value receiver just silently failed to bind @@ -5633,7 +5830,7 @@ fn test_generic_method_self_shape_mismatch_reports_clear_diagnostic() { memory heap: Memory where { Size = u32 }; trait Foo { - fn bar(self: *mut Self) -> T { unreachable } + fn bar(self: &Self) -> T { unreachable } } struct S {} @@ -5779,7 +5976,7 @@ fn test_deref_load_through_pointer() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn read(ptr: heap::*i32) -> i32 { ptr.* } + fn read(ptr: heap::&i32) -> i32 { ptr.* } "}, &[], ); @@ -5792,7 +5989,7 @@ fn test_deref_store_through_mutable_pointer() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn write(ptr: heap::*mut i32) { ptr.* = 42 } + fn write(ptr: heap::*i32) { ptr.* = 42 } "}, &[], ); @@ -5805,7 +6002,7 @@ fn test_deref_arithmetic_assignment_through_mutable_pointer() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn increment(ptr: heap::*mut i32) { ptr.* += 1 } + fn increment(ptr: heap::*i32) { ptr.* += 1 } "}, &[], ); @@ -5840,7 +6037,7 @@ fn test_deref_store_through_immutable_pointer_is_error() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn bad(ptr: heap::*i32) { ptr.* = 42 } + fn bad(ptr: heap::&i32) { ptr.* = 42 } "}, &[], ); @@ -5861,7 +6058,7 @@ fn test_deref_arithmetic_assignment_through_immutable_pointer_is_error() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn bad(ptr: heap::*i32) { ptr.* += 1 } + fn bad(ptr: heap::&i32) { ptr.* += 1 } "}, &[], ); @@ -5882,7 +6079,7 @@ fn test_deref_type_mismatch_on_store_is_error() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn bad(ptr: heap::*mut i32) { ptr.* = true } + fn bad(ptr: heap::*i32) { ptr.* = true } "}, &[], ); @@ -6051,8 +6248,8 @@ fn test_array_literal_basic() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f() -> heap::[3]i32 { - local x: heap::[3]i32 = [1, 2, 3]; + fn f() -> heap::&[i32; 3] { + local x: heap::&[i32; 3] = [1, 2, 3]; x } "}, @@ -6067,8 +6264,8 @@ fn test_array_literal_mutable() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f() -> heap::[3]i32 { - local x: heap::[3]i32 = [1, 2, 3]; + fn f() -> heap::*[i32; 3] { + local x: heap::*[i32; 3] = [1, 2, 3]; x } "}, @@ -6083,8 +6280,8 @@ fn test_array_literal_float_elements() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f() -> heap::[2]f32 { - local x: heap::[2]f32 = [1.0, 2.0]; + fn f() -> heap::&[f32; 2] { + local x: heap::&[f32; 2] = [1.0, 2.0]; x } "}, @@ -6099,8 +6296,8 @@ fn test_array_literal_empty_with_annotation() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f() -> heap::[0]i32 { - local x: heap::[0]i32 = []; + fn f() -> heap::&[i32; 0] { + local x: heap::&[i32; 0] = []; x } "}, @@ -6116,7 +6313,7 @@ fn test_array_literal_size_mismatch_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; fn f() { - local x: heap::[3]i32 = [1, 2]; + local x: heap::&[i32; 3] = [1, 2]; } "}, &[], @@ -6152,7 +6349,7 @@ fn test_array_literal_no_memory_is_error() { // No memory declaration — array cannot be placed in linear memory. let case = TestCase::new(indoc! {" fn f() { - local x: [3]i32 = [1, 2, 3]; + local x: &[i32; 3] = [1, 2, 3]; } "}); assert!( @@ -6168,7 +6365,7 @@ fn test_array_literal_non_numeric_element_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; fn f() { - local x: heap::[2]i32 = [true, false]; + local x: heap::&[i32; 2] = [true, false]; } "}, &[], @@ -6184,7 +6381,7 @@ fn test_array_literal_mixed_element_types_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; fn f(b: bool) { - local x: heap::[2]bool = [b, b]; + local x: heap::&[bool; 2] = [b, b]; } "}, &[], @@ -6201,8 +6398,8 @@ fn test_array_repeat_basic() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f() -> heap::[4]i32 { - local x: heap::[4]i32 = [0; 4]; + fn f() -> heap::&[i32; 4] { + local x: heap::&[i32; 4] = [0; 4]; x } "}, @@ -6217,8 +6414,8 @@ fn test_array_repeat_float() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f() -> heap::[8]f64 { - local x: heap::[8]f64 = [0.0; 8]; + fn f() -> heap::&[f64; 8] { + local x: heap::&[f64; 8] = [0.0; 8]; x } "}, @@ -6234,7 +6431,7 @@ fn test_array_repeat_count_not_const_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; fn f(n: u32) { - local x: heap::[4]i32 = [0; n]; + local x: heap::&[i32; 4] = [0; n]; } "}, &[], @@ -6252,7 +6449,7 @@ fn test_array_repeat_size_mismatch_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; fn f() { - local x: heap::[4]i32 = [0; 3]; + local x: heap::&[i32; 4] = [0; 3]; } "}, &[], @@ -6288,7 +6485,7 @@ fn test_array_repeat_non_numeric_value_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; fn f(b: bool) { - local x: heap::[4]i32 = [b; 4]; + local x: heap::&[i32; 4] = [b; 4]; } "}, &[], @@ -6305,7 +6502,7 @@ fn test_index_read_from_array() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]i32) -> i32 { a[0] } + fn f(a: heap::&[i32; 4]) -> i32 { a[0] } "}, &[], ); @@ -6318,7 +6515,7 @@ fn test_index_read_from_slice() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[]i32) -> i32 { a[0] } + fn f(a: heap::&[i32]) -> i32 { a[0] } "}, &[], ); @@ -6343,7 +6540,7 @@ fn test_index_wrong_index_type_is_error() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]i32, i: i64) -> i32 { a[i] } + fn f(a: heap::&[i32; 4], i: i64) -> i32 { a[i] } "}, &[], ); @@ -6364,7 +6561,7 @@ fn test_index_store_through_mutable_array() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]mut i32) { a[0] = 42 } + fn f(a: heap::*[i32; 4]) { a[0] = 42 } "}, &[], ); @@ -6377,7 +6574,7 @@ fn test_index_store_through_immutable_array_is_error() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]i32) { a[0] = 42 } + fn f(a: heap::&[i32; 4]) { a[0] = 42 } "}, &[], ); @@ -6398,7 +6595,7 @@ fn test_index_arithmetic_assignment_through_mutable_array() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]mut i32) { a[0] += 1 } + fn f(a: heap::*[i32; 4]) { a[0] += 1 } "}, &[], ); @@ -6411,7 +6608,7 @@ fn test_index_arithmetic_assignment_through_immutable_array_is_error() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]i32) { a[0] += 1 } + fn f(a: heap::&[i32; 4]) { a[0] += 1 } "}, &[], ); @@ -6432,7 +6629,7 @@ fn test_index_store_type_mismatch_is_error() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]mut i32) { a[0] = true } + fn f(a: heap::*[i32; 4]) { a[0] = true } "}, &[], ); @@ -6445,7 +6642,7 @@ fn test_index_memory64_requires_u64_index() { "main.wx", indoc! {" memory heap: Memory where { Size = u64 }; - fn f(a: heap::[4]i32) -> i32 { a[0] } + fn f(a: heap::&[i32; 4]) -> i32 { a[0] } "}, &[], ); @@ -6461,7 +6658,7 @@ fn test_index_ambiguous_memory_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; memory stack: Memory where { Size = u32 }; - fn f(a: heap::[4]i32) -> i32 { a[0] } + fn f(a: heap::&[i32; 4]) -> i32 { a[0] } "}, &[], ); @@ -6477,7 +6674,7 @@ fn test_array_literal_runtime_element_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; fn f(x: i32) { - local arr: heap::[2]i32 = [x, 1]; + local arr: heap::&[i32; 2] = [x, 1]; } "}, &[], @@ -6495,7 +6692,7 @@ fn test_array_repeat_runtime_value_is_error() { indoc! {" memory heap: Memory where { Size = u32 }; fn f(x: i32) { - local arr: heap::[4]i32 = [x; 4]; + local arr: heap::&[i32; 4] = [x; 4]; } "}, &[], @@ -6515,7 +6712,7 @@ fn test_index_concrete_memory32_typed_variable() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]i32, i: u32) -> i32 { a[i] } + fn f(a: heap::&[i32; 4], i: u32) -> i32 { a[i] } "}, &[], ); @@ -6529,7 +6726,7 @@ fn test_index_concrete_memory64_typed_variable() { "main.wx", indoc! {" memory heap: Memory where { Size = u64 }; - fn f(a: heap::[4]i32, i: u64) -> i32 { a[i] } + fn f(a: heap::&[i32; 4], i: u64) -> i32 { a[i] } "}, &[], ); @@ -6543,7 +6740,7 @@ fn test_index_memory32_with_u64_variable_is_error() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn f(a: heap::[4]i32, i: u64) -> i32 { a[i] } + fn f(a: heap::&[i32; 4], i: u64) -> i32 { a[i] } "}, &[], ); @@ -6560,13 +6757,13 @@ fn test_index_memory32_with_u64_variable_is_error() { #[test] fn test_index_generic_array_with_assoc_size_type() { - // Generic fn over M: Memory indexing M::[4]i32 with M::Size — the index + // Generic fn over M: Memory indexing M::&[i32; 4] with M::Size — the index // type must accept M::Size rather than requiring a concrete integer type. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn read(arr: M::[4]i32, i: M::Size) -> i32 { + fn read(arr: M::&[i32; 4], i: M::Size) -> i32 { arr[i] } "}, @@ -6582,7 +6779,7 @@ fn test_index_generic_slice_with_assoc_size_type() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn read(s: M::[]i32, i: M::Size) -> i32 { + fn read(s: M::&[i32], i: M::Size) -> i32 { s[i] } "}, @@ -6599,10 +6796,10 @@ fn test_index_generic_array_call_with_concrete_memory() { "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn read(arr: M::[4]i32, i: M::Size) -> i32 { + fn read(arr: M::&[i32; 4], i: M::Size) -> i32 { arr[i] } - fn caller(arr: heap::[4]i32, i: u32) -> i32 { + fn caller(arr: heap::&[i32; 4], i: u32) -> i32 { read(arr, i) } "}, @@ -6745,10 +6942,13 @@ fn test_enum_variants_are_populated() { } #[test] -fn test_enum_all_implicit_variants() { +fn test_enum_variants_after_anchor_auto_increment() { + // Only the first variant needs an explicit value — every variant + // after it (`East`/`South`/`West`) may still omit one, auto- + // incrementing from `North`'s explicit `0`. let case = TestCase::new(indoc! {" enum Direction: u32 { - North, + North = 0, East, South, West, @@ -6888,7 +7088,7 @@ fn test_enum_missing_repr_with_explicit_values_reports_once() { fn test_enum_duplicate_variant_is_error() { let case = TestCase::new(indoc! {" enum Color: i32 { - Red, + Red = 0, Red, } "}); @@ -6978,7 +7178,15 @@ fn test_enum_negation_folds_for_signed_repr() { } #[test] -fn test_enum_duplicate_value_is_error() { +fn test_enum_implicit_first_variant_no_longer_collides_silently() { + // This used to be `test_enum_duplicate_value_is_error`: `A` (implicit) + // silently got the auto-incremented `0`, colliding with `B = 0` — + // exactly the motivating bug for requiring an explicit anchor + // (`examples/compare/main.wx`'s real `Ordering` enum hit this exact + // shape). Under the new rule `A` is rejected outright before any + // collision has a chance to happen; `EnumDuplicateValue` itself still + // has coverage via `test_enum_duplicate_value_groups_all_colliding_variants` + // (fully-explicit variants can still collide with each other). let case = TestCase::new(indoc! {" enum Color: i32 { A, @@ -6987,8 +7195,135 @@ fn test_enum_duplicate_value_is_error() { export {} "}); assert!( - has_error_code(&case.tir, DiagnosticCode::EnumDuplicateValue), - "expected E1056 (EnumDuplicateValue) for auto-value colliding with explicit value, got: {:?}", + has_error_code( + &case.tir, + DiagnosticCode::EnumVariantRequiresExplicitValue + ), + "expected E1071 (EnumVariantRequiresExplicitValue) for implicit `A` with nothing to anchor to, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_enum_first_variant_requires_explicit_value() { + let case = TestCase::new(indoc! {" + enum E: i32 { + A, + B, + } + export {} + "}); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::EnumVariantRequiresExplicitValue + ), + "expected E1071 (EnumVariantRequiresExplicitValue) for `A`, the \ + first variant, with no explicit value, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_enum_anchored_by_non_adjacent_earlier_variant_is_ok() { + // `C` is implicit and isn't immediately preceded by an explicit value + // (`B` is also implicit) — it's anchored transitively by `A`, above + // both. Auto-increment still counts from `B` (`5`), not from `A` + // (`0`) — only the *requirement* that an anchor exists looks + // backward arbitrarily far; the numeric continuation is still always + // "previous variant's value + 1". + let case = TestCase::new(indoc! {" + enum E: i32 { + A = 0, + B = 5, + C, + } + export {} + "}); + no_errors(&case); + let enum_ = case + .tir + .enums + .iter() + .find(|e| case.graph.interner.resolve(e.name.inner) == Some("E")) + .expect("E enum not found"); + assert_eq!(enum_.variants[2].const_value, Some(ConstValue::Int(6))); +} + +#[test] +fn test_enum_variant_with_broken_value_does_not_anchor_later_variants() { + // A variant with a syntactically-present but unresolvable `=` value + // does not establish a numeric baseline (there is none to give) — + // `B` correctly still reports "requires an explicit value" on top of + // whatever error `A`'s own broken expression produced. This is a + // straightforward consequence of representing the auto-increment + // cursor as a single `Option` (`build_enum`'s `next_auto_value`) + // rather than tracking "has an anchor" and "next numeric value" + // separately. + let case = TestCase::new(indoc! {" + enum E: i32 { + A = some_undefined_const, + B, + } + export {} + "}); + assert!( + has_error_code(&case.tir, DiagnosticCode::UndeclaredIdentifier), + "expected E1007 (UndeclaredIdentifier) for `A`'s broken value, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::EnumVariantRequiresExplicitValue + ), + "expected E1071 (EnumVariantRequiresExplicitValue) for `B` too, \ + since `A`'s value never resolved to a usable baseline, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_enum_missing_value_does_not_cascade_when_repr_missing() { + let case = TestCase::new(indoc! {" + enum E { + A, + B, + } + export {} + "}); + assert!( + has_error_code(&case.tir, DiagnosticCode::MissingEnumRepr), + "expected E1036 (MissingEnumRepr), got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); + assert!( + !has_error_code( + &case.tir, + DiagnosticCode::EnumVariantRequiresExplicitValue + ), + "E1071 (EnumVariantRequiresExplicitValue) must not cascade on top \ + of an already-broken repr type, got: {:?}", case.tir .diagnostics .iter() @@ -7148,7 +7483,7 @@ fn test_const_not_const_evaluatable_value_is_error() { fn test_enum_unused_is_warned() { let case = TestCase::new(indoc! {" enum Color: i32 { - Red, + Red = 0, Green, } export {} @@ -7226,7 +7561,7 @@ fn test_private_const_in_inherent_impl_is_warned_unused() { fn test_pub_enum_no_unused_warn() { let case = TestCase::new(indoc! {" pub enum Color: i32 { - Red, + Red = 0, Green, } export {} @@ -7245,7 +7580,7 @@ fn test_enum_variant_unused_is_warned() { // but `Green` is never referenced through `Color::Green`. let case = TestCase::new(indoc! {" enum Color: i32 { - Red, + Red = 0, Green, } fn get_red() -> Color { @@ -7276,7 +7611,7 @@ fn test_enum_variant_unused_is_warned() { fn test_enum_all_variants_used_no_warn() { let case = TestCase::new(indoc! {" enum Color: i32 { - Red, + Red = 0, Green, } fn both(c: Color) -> bool { @@ -7300,7 +7635,7 @@ fn test_enum_all_variants_used_no_warn() { fn test_enum_two_unused_variants_grouped_without_oxford_comma() { let case = TestCase::new(indoc! {" enum Direction: i32 { - Right, + Right = 0, Down, Left, } @@ -7326,7 +7661,7 @@ fn test_enum_two_unused_variants_grouped_without_oxford_comma() { fn test_enum_five_unused_variants_grouped_with_oxford_comma() { let case = TestCase::new(indoc! {" enum Direction: i32 { - Right, + Right = 0, Down, Left, Up, @@ -7356,7 +7691,7 @@ fn test_enum_five_unused_variants_grouped_with_oxford_comma() { fn test_enum_six_unused_variants_collapses_to_generic_message() { let case = TestCase::new(indoc! {" enum Direction: i32 { - Right, + Right = 0, Down, Left, Up, @@ -7462,7 +7797,7 @@ fn test_generic_impl_block_registers_and_dispatches() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - fn get_len(s: heap::[]u8) -> u32 { + fn get_len(s: heap::&[u8]) -> u32 { s.len() } @@ -7497,7 +7832,7 @@ fn test_generic_impl_bare_type_param_is_error() { fn test_slice_range_full_is_ok() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - fn f(s: heap::[]u8) -> heap::[]u8 { + fn f(s: heap::&[u8]) -> heap::&[u8] { s[..] } export { f } @@ -7513,7 +7848,7 @@ fn test_slice_range_full_is_ok() { fn test_slice_range_with_bounds_is_ok() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - fn f(s: heap::[]u8, i: u32, n: u32) -> heap::[]u8 { + fn f(s: heap::&[u8], i: u32, n: u32) -> heap::&[u8] { s[i..n] } export { f } @@ -7529,7 +7864,7 @@ fn test_slice_range_with_bounds_is_ok() { fn test_slice_range_on_array_is_ok() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - fn f(arr: heap::[4]u8) -> heap::[]u8 { + fn f(arr: heap::&[u8; 4]) -> heap::&[u8] { arr[1..3] } export { f } @@ -7545,7 +7880,7 @@ fn test_slice_range_on_array_is_ok() { fn test_slice_range_on_non_indexable_is_error() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; - fn f(x: i32) -> heap::[]i32 { + fn f(x: i32) -> heap::&[i32] { x[..] } export { f } @@ -7793,11 +8128,11 @@ fn test_typeset_intersection_range_out_of_bounds_reports_error() { #[test] fn test_generic_slice_first_with_pointer_size_index() { - // `self[0]` inside `impl M::[]T` — the literal `0` must be + // `self[0]` inside `impl M::&[T]` — the literal `0` must be // coerced to `M::Size`, whose typeset bound is `PointerSize { u32, u64 }`. // The intersection range for PointerSize is [0, u32::MAX], so `0` is valid. let case = TestCase::new(indoc! {" - impl M::[]T { + impl M::&[T] { pub fn first(self) -> T { self[0] } } export { } @@ -8025,10 +8360,10 @@ fn test_assoc_type_resolves_in_trait_default_body() { trait Allocator { type M: Memory; - fn reserve(self: Self::M::*mut Self, layout: Layout) -> Self::M::*mut u8; + fn reserve(self: Self::M::*Self, layout: Layout) -> Self::M::*u8; #[inline] - fn alloc_slice(self: Self::M::*mut Self, count: Self::M::Size) -> Self::M::*mut u8 { + fn alloc_slice(self: Self::M::*Self, count: Self::M::Size) -> Self::M::*u8 { local layout = Layout::::array::(count); self.reserve(layout) } @@ -8060,10 +8395,10 @@ fn test_generic_call_result_type_infers_assoc_type_arg() { trait Allocator { type M: Memory; - fn reserve(self: Self::M::*mut Self, layout: Layout) -> Self::M::*mut u8; + fn reserve(self: Self::M::*Self, layout: Layout) -> Self::M::*u8; #[inline] - fn alloc(self: Self::M::*mut Self) -> Self::M::*mut T { + fn alloc(self: Self::M::*Self) -> Self::M::*T { self.reserve(Layout::of::()) as _ } } @@ -9045,30 +9380,30 @@ fn test_duplicate_method_name_in_generic_impl_rejected() { #[test] fn test_tree_mut_binding_mut_does_not_grant_write_through() { - // `mut` on binding does NOT grant write-through — pointer type must be `*mut T`. + // `mut` on binding does NOT grant write-through — pointer type must be `*T`. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn bad(mut ptr: heap::*i32) { ptr.* = 42 } + fn bad(mut ptr: heap::&i32) { ptr.* = 42 } "}, &[], ); assert!( has_error_code(&case.tir, DiagnosticCode::CannotMutateImmutable), - "mut binding + *i32 should NOT allow write-through; got: {:?}", + "mut binding + &i32 should NOT allow write-through; got: {:?}", case.tir.diagnostics ); } #[test] fn test_tree_mut_immutable_binding_mutable_pointer_write_ok() { - // Immutable binding + `*mut T` IS sufficient for write-through. + // Immutable binding + `*T` IS sufficient for write-through. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn ok(ptr: heap::*mut i32) { ptr.* = 42 } + fn ok(ptr: heap::*i32) { ptr.* = 42 } "}, &[], ); @@ -9077,30 +9412,30 @@ fn test_tree_mut_immutable_binding_mutable_pointer_write_ok() { #[test] fn test_tree_mut_nested_inner_immutable_blocks_deep_write() { - // `p: *mut *i32` — outer `*mut` allows storing a pointer, but inner `*i32` blocks write-through. + // `p: *&i32` — outer `*` (exclusive) allows storing a pointer, but inner `&i32` (shared) blocks write-through. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn bad(p: heap::*mut heap::*i32) { p.*.* = 99 } + fn bad(p: heap::*heap::&i32) { p.*.* = 99 } "}, &[], ); assert!( has_error_code(&case.tir, DiagnosticCode::CannotMutateImmutable), - "p.*.* write should error: inner *i32 is immutable; got: {:?}", + "p.*.* write should error: inner &i32 is shared; got: {:?}", case.tir.diagnostics ); } #[test] fn test_tree_mut_nested_both_mutable_write_ok() { - // `p: *mut *mut i32` — both levels mutable, p.*.* = val should work. + // `p: **i32` — both levels mutable, p.*.* = val should work. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn ok(p: heap::*mut heap::*mut i32) { p.*.* = 99 } + fn ok(p: heap::*heap::*i32) { p.*.* = 99 } "}, &[], ); @@ -9109,32 +9444,32 @@ fn test_tree_mut_nested_both_mutable_write_ok() { #[test] fn test_tree_mut_struct_field_through_immutable_ptr_is_error() { - // `ptr: *Node` — cannot write any field through it. + // `ptr: &Node` — cannot write any field through it. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; struct Node { x: i32 } - fn bad(ptr: heap::*Node) { ptr.*.x = 1 } + fn bad(ptr: heap::&Node) { ptr.*.x = 1 } "}, &[], ); assert!( has_error_code(&case.tir, DiagnosticCode::CannotMutateImmutable), - "field write through *Node should error; got: {:?}", + "field write through &Node should error; got: {:?}", case.tir.diagnostics ); } #[test] fn test_tree_mut_struct_field_through_mutable_ptr_ok() { - // `ptr: *mut Node` — can write fields. + // `ptr: *Node` — can write fields. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; struct Node { x: i32 } - fn ok(ptr: heap::*mut Node) { ptr.*.x = 1 } + fn ok(ptr: heap::*Node) { ptr.*.x = 1 } "}, &[], ); @@ -9143,13 +9478,13 @@ fn test_tree_mut_struct_field_through_mutable_ptr_ok() { #[test] fn test_tree_mut_mutable_ptr_coerces_to_immutable_param() { - // Passing `*mut T` where `*T` is expected is allowed (safe downgrade). + // Passing `*T` (exclusive) where `&T` (shared) is expected is allowed (safe downgrade). let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn read(ptr: heap::*i32) -> i32 { ptr.* } - fn call(p: heap::*mut i32) -> i32 { read(p) } + fn read(ptr: heap::&i32) -> i32 { ptr.* } + fn call(p: heap::*i32) -> i32 { read(p) } "}, &[], ); @@ -9158,41 +9493,41 @@ fn test_tree_mut_mutable_ptr_coerces_to_immutable_param() { #[test] fn test_tree_mut_immutable_ptr_cannot_satisfy_mutable_param() { - // Passing `*T` where `*mut T` is expected is NOT allowed. + // Passing `&T` (shared) where `*T` (exclusive) is expected is NOT allowed. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn write(ptr: heap::*mut i32) { ptr.* = 1 } - fn call(p: heap::*i32) { write(p) } + fn write(ptr: heap::*i32) { ptr.* = 1 } + fn call(p: heap::&i32) { write(p) } "}, &[], ); assert!( !case.tir.diagnostics.is_empty(), - "passing *i32 to *mut i32 param must error; got no diagnostics" + "passing &i32 to *i32 param must error; got no diagnostics" ); } #[test] fn test_tree_mut_binding_mut_allows_reassign_but_not_write_through() { - // `local mut p: *i32` — can reassign p, but cannot write through p.*. + // `local mut p: &i32` — can reassign p, but cannot write through p.*. let case = TestCase::new_multi_file( "main.wx", indoc! {" memory heap: Memory where { Size = u32 }; - fn bad(a: heap::*i32, b: heap::*i32) { - local mut p: heap::*i32 = a; + fn bad(a: heap::&i32, b: heap::&i32) { + local mut p: heap::&i32 = a; p = b; p.* = 99 } "}, &[], ); - // Reassign `p = b` is ok (mut binding). Write `p.* = 99` must error (pointer type immutable). + // Reassign `p = b` is ok (mut binding). Write `p.* = 99` must error (pointer type shared). assert!( has_error_code(&case.tir, DiagnosticCode::CannotMutateImmutable), - "write through *i32 must error even with mut binding; got: {:?}", + "write through &i32 must error even with mut binding; got: {:?}", case.tir.diagnostics ); let errors: Vec<_> = case @@ -9218,9 +9553,9 @@ fn test_ptr_autoderef_calls_method_on_inner_type() { memory heap: Memory where { Size = u32 }; struct Node { value: i32 } impl Node { - pub fn value(self: heap::*Node) -> i32 { self.*.value } + pub fn value(self: heap::&Node) -> i32 { self.*.value } } - fn get(n: heap::*Node) -> i32 { n.value() } + fn get(n: heap::&Node) -> i32 { n.value() } export { get } "}); assert!( @@ -9232,14 +9567,14 @@ fn test_ptr_autoderef_calls_method_on_inner_type() { #[test] fn test_ptr_autoderef_mutable_ptr_calls_mut_self_method() { - // `ptr.set()` on `*mut Node` should resolve to a method taking `self: heap::*mut Self`. + // `ptr.set()` on `*Node` should resolve to a method taking `self: heap::*Self`. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; struct Node { value: i32 } impl Node { - pub fn set(self: heap::*mut Node, v: i32) { self.*.value = v } + pub fn set(self: heap::*Node, v: i32) { self.*.value = v } } - fn update(n: heap::*mut Node) { n.set(42) } + fn update(n: heap::*Node) { n.set(42) } export { update } "}); assert!( @@ -9251,14 +9586,14 @@ fn test_ptr_autoderef_mutable_ptr_calls_mut_self_method() { #[test] fn test_ptr_autoderef_mutable_ptr_coerces_to_immutable_self() { - // `*mut T` calling a method with `self: *T` should succeed via `*mut T → *T` coercion. + // `*T` calling a method with `self: &T` should succeed via `*T → &T` coercion. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; struct Node { val: i32 } impl Node { - pub fn read(self: heap::*Node) -> i32 { self.*.val } + pub fn read(self: heap::&Node) -> i32 { self.*.val } } - fn get(n: heap::*mut Node) -> i32 { n.read() } + fn get(n: heap::*Node) -> i32 { n.read() } export { get } "}); assert!( @@ -9270,14 +9605,14 @@ fn test_ptr_autoderef_mutable_ptr_coerces_to_immutable_self() { #[test] fn test_ptr_autoderef_immutable_ptr_rejects_mut_self_method() { - // `ptr.set()` on `*Node` (immutable) with `self: *mut Node` should be a type mismatch. + // `ptr.set()` on `&Node` (shared) with `self: *Node` should be a type mismatch. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; struct Node { value: i32 } impl Node { - pub fn set(self: heap::*mut Node, v: i32) { self.*.value = v } + pub fn set(self: heap::*Node, v: i32) { self.*.value = v } } - fn bad(n: heap::*Node) { n.set(42) } + fn bad(n: heap::&Node) { n.set(42) } export { bad } "}); assert!( @@ -9312,9 +9647,9 @@ fn test_ptr_autoderef_generic_impl_method() { memory heap: Memory where { Size = u32 }; struct Wrapper { inner: T } impl Wrapper { - pub fn get(self: heap::*Wrapper) -> T { self.*.inner } + pub fn get(self: heap::&Wrapper) -> T { self.*.inner } } - fn unwrap(w: heap::*Wrapper) -> i32 { w.get() } + fn unwrap(w: heap::&Wrapper) -> i32 { w.get() } export { unwrap } "}); assert!( @@ -9326,16 +9661,16 @@ fn test_ptr_autoderef_generic_impl_method() { #[test] fn test_ptr_autoderef_memory_qualifier_mismatch_errors() { - // `other::*Node` calling a method with `self: heap::*Node` — the inner type `Node` + // `other::&Node` calling a method with `self: heap::&Node` — the inner type `Node` // is found, but the self-param check fails because the memory qualifiers differ. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; memory other: Memory where { Size = u32 }; struct Node { val: i32 } impl Node { - pub fn read(self: heap::*Node) -> i32 { self.*.val } + pub fn read(self: heap::&Node) -> i32 { self.*.val } } - fn bad(n: other::*Node) -> i32 { n.read() } + fn bad(n: other::&Node) -> i32 { n.read() } export { bad } "}); assert!( @@ -9346,15 +9681,15 @@ fn test_ptr_autoderef_memory_qualifier_mismatch_errors() { #[test] fn test_ptr_autoderef_double_pointer_not_found() { - // `**Node` — auto-deref is one level only. The inner type is `*Node`, which has no + // `&&Node` — auto-deref is one level only. The inner type is `&Node`, which has no // impl block, so the method is not found. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; struct Node { val: i32 } impl Node { - pub fn read(self: heap::*Node) -> i32 { self.*.val } + pub fn read(self: heap::&Node) -> i32 { self.*.val } } - fn bad(n: heap::*heap::*Node) -> i32 { n.read() } + fn bad(n: heap::&heap::&Node) -> i32 { n.read() } export { bad } "}); assert!( @@ -9370,7 +9705,7 @@ fn test_ptr_field_access_does_not_auto_deref() { let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; struct Node { val: i32 } - fn bad(n: heap::*Node) -> i32 { n.val } + fn bad(n: heap::&Node) -> i32 { n.val } export { bad } "}); assert!( @@ -9381,16 +9716,16 @@ fn test_ptr_field_access_does_not_auto_deref() { #[test] fn test_ptr_autoderef_chained_calls() { - // `ptr.next().get_val()` — `next()` returns `*Node`, then `get_val()` auto-derefs + // `ptr.next().get_val()` — `next()` returns `&Node`, then `get_val()` auto-derefs // the returned pointer. Each call goes through resolve_method_call independently. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; struct Node { val: i32 } impl Node { - pub fn next(self: heap::*Node) -> heap::*Node { self } - pub fn get_val(self: heap::*Node) -> i32 { self.*.val } + pub fn next(self: heap::&Node) -> heap::&Node { self } + pub fn get_val(self: heap::&Node) -> i32 { self.*.val } } - fn chain(n: heap::*Node) -> i32 { n.next().get_val() } + fn chain(n: heap::&Node) -> i32 { n.next().get_val() } export { chain } "}); assert!( @@ -9400,7 +9735,7 @@ fn test_ptr_autoderef_chained_calls() { ); } -// ── AddressOf (.& / .&mut) ───────────────────────────────────────────────── +// ── AddressOf (.&) ────────────────────────────────────────────────────────── #[test] fn test_address_of_non_place_rejected() { @@ -9416,30 +9751,15 @@ fn test_address_of_non_place_rejected() { ); } -#[test] -fn test_address_of_mut_through_immutable_pointer_rejected() { - // `.&mut` through an immutable pointer must emit a diagnostic. - let case = TestCase::new(indoc! {" - memory heap: Memory where { Size = u32 }; - fn bad(ptr: heap::*i32) -> heap::*mut i32 { ptr.*.&mut } - export { bad } - "}); - assert!( - has_error_code(&case.tir, DiagnosticCode::CannotMutateImmutable), - "expected CannotMutateImmutable for .&mut through *i32; got: {:?}", - case.tir.diagnostics - ); -} - #[test] fn test_address_of_place_has_correct_pointer_type() { - // `arr[i].&` on a heap array must resolve to a `heap::*i32` pointer type, - // and `ptr.*.field.&` on a struct field must resolve to the field's pointer type. + // `arr[i].&` on a heap array must resolve to a `heap::&i32` reference type, + // and `ptr.*.field.&` on a struct field must resolve to the field's reference type. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; struct Point { x: i32, y: i32 } - fn arr_elem_ptr(arr: heap::[4]i32, i: u32) -> heap::*i32 { arr[i].& } - fn field_ptr(ptr: heap::*Point) -> heap::*i32 { ptr.*.x.& } + fn arr_elem_ptr(arr: heap::&[i32; 4], i: u32) -> heap::&i32 { arr[i].& } + fn field_ptr(ptr: heap::&Point) -> heap::&i32 { ptr.*.x.& } export { arr_elem_ptr, field_ptr } "}); assert!( @@ -9507,8 +9827,8 @@ fn test_duplicate_enum_definition_is_error() { // branch reporting a diagnostic at all — two same-named enums were // silently accepted with the second one just dropped. let case = TestCase::new(indoc! {" - enum Foo: i32 { A } - enum Foo: i32 { B } + enum Foo: i32 { A = 0 } + enum Foo: i32 { B = 0 } export { } "}); assert!( @@ -10056,9 +10376,9 @@ fn test_generic_inherent_impl_on_slice_beats_trait_no_ambiguity() { // Same inherent-always-wins rule as the struct case, but on // `ImplTarget::Slice` — confirms the fix generalizes past `Struct`. If // this incorrectly picked `Counter::count` (-> bool) instead of the - // inherent `M::[]T::count` (-> u32), `use_it`'s return type would + // inherent `M::&[T]::count` (-> u32), `use_it`'s return type would // fail to check. Uses `count`, not `len`, to avoid colliding with the - // stdlib's own `impl M::[]T { fn len(...) }`. + // stdlib's own `impl M::&[T] { fn len(...) }`. let case = TestCase::new(indoc! {" memory heap: Memory where { Size = u32 }; @@ -10066,15 +10386,15 @@ fn test_generic_inherent_impl_on_slice_beats_trait_no_ambiguity() { fn count(self) -> bool; } - impl M::[]T { + impl M::&[T] { pub fn count(self) -> u32 { 0 } } - impl Counter for heap::[]i32 { + impl Counter for heap::&[i32] { fn count(self) -> bool { true } } - fn use_it(s: heap::[]i32) -> u32 { + fn use_it(s: heap::&[i32]) -> u32 { s.count() } @@ -10636,7 +10956,7 @@ fn test_match_int_exhaustive_with_wildcard() { fn test_match_enum_all_variants_covered_no_wildcard_ok() { let case = TestCase::new(indoc! {" enum FileDescriptor: u8 { - StdIn, + StdIn = 0, StdOut, StdErr, } @@ -10664,7 +10984,7 @@ fn test_match_enum_all_variants_covered_no_wildcard_ok() { fn test_match_enum_missing_variant_is_error() { let case = TestCase::new(indoc! {" enum FileDescriptor: u8 { - StdIn, + StdIn = 0, StdOut, StdErr, } @@ -10760,7 +11080,7 @@ fn test_match_arm_type_mismatch_reuses_type_mismatch_diagnostic() { fn test_match_enum_variant_marks_variant_used() { let case = TestCase::new(indoc! {" enum FileDescriptor: u8 { - StdIn, + StdIn = 0, StdOut, StdErr, } @@ -10820,3 +11140,440 @@ fn test_match_duplicate_pattern_warns_unreachable() { .collect::>() ); } + +// ── generic type param bounded by an operator trait ───────────────────────── + +#[test] +fn test_generic_type_param_bounded_by_add_dispatches() { + let case = TestCase::new(indoc! {" + pub fn add_generic(a: T, b: T) -> T { + a + b + } + "}); + no_errors(&case); +} + +#[test] +fn test_generic_type_param_unbounded_operator_reports_diagnostic() { + let case = TestCase::new(indoc! {" + pub fn add_generic(a: T, b: T) -> T { + a + b + } + "}); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::BinaryOperatorCannotBeApplied + ), + "expected E1008 (BinaryOperatorCannotBeApplied) for unbounded T + T, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_generic_type_param_bounded_compound_assign_dispatches() { + let case = TestCase::new(indoc! {" + pub fn add_assign_generic(a: T, b: T) -> T { + local mut x: T = a; + x += b; + x + } + "}); + no_errors(&case); +} + +#[test] +fn test_generic_type_param_unbounded_compound_assign_reports_diagnostic() { + let case = TestCase::new(indoc! {" + pub fn add_assign_generic(a: T, b: T) -> T { + local mut x: T = a; + x += b; + x + } + "}); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::BinaryOperatorCannotBeApplied + ), + "expected E1008 (BinaryOperatorCannotBeApplied) for unbounded T += T, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +// ── struct operator-trait impls ───────────────────────────────────────────── +// +// Every `impl Add for X` exercised above (and in `std/main.wx` itself) is for +// a primitive. `ImplTarget::from_type` (`tir/mod.rs`) treats `Type::Struct` +// as an equally valid dispatch target via the same `find_trait_impl` lookup, +// but nothing previously exercised that path — these are the first tests to +// implement an operator trait for a user-defined struct rather than a +// primitive. + +#[test] +fn test_struct_impl_add_dispatches() { + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + pub fn add_vec2(a: Vec2, b: Vec2) -> Vec2 { + a + b + } + "}); + no_errors(&case); +} + +#[test] +fn test_struct_operator_dispatch_records_goto_definition_access() { + // Mirrors `test_export_const_reports_cannot_export_and_records_access`'s + // use of `accesses` to verify LSP hover/go-to-definition — except here + // dispatch succeeds, so the check is that the `+` operator's own span + // was recorded against the resolved `Vec2::add` method, exactly as the + // prior conversation's hover/go-to-def-on-operators behavior requires. + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + #[tag = \"vec2_add\"] + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + pub fn add_vec2(a: Vec2, b: Vec2) -> Vec2 { + a + b + } + "}); + no_errors(&case); + + let add_tag = case.graph.interner.get("vec2_add").unwrap(); + let add_def_id = *case.tir.tagged_items.get(&add_tag).unwrap(); + let add_index = case.tir.function_index(add_def_id).unwrap(); + + assert_eq!( + case.tir.functions[add_index as usize].accesses.len(), + 1, + "the `+` in `a + b` must be recorded as a go-to-definition access on \ + Vec2's `add` method, the same way an ordinary `.add()` method call \ + would be" + ); +} + +#[test] +fn test_struct_without_operator_impl_reports_diagnostic() { + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + pub fn add_vec2(a: Vec2, b: Vec2) -> Vec2 { + a + b + } + "}); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::BinaryOperatorCannotBeApplied + ), + "expected E1008 (BinaryOperatorCannotBeApplied) for `Vec2 + Vec2` \ + with no `Add` impl, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_struct_operator_impl_does_not_grant_other_operators() { + // Implementing `Add` for a struct must not make `Mul` (or any other + // operator trait) resolve too — each operator dispatches through its own + // trait independently (`OperatorTraits::for_op`); there is no + // "implements one, gets all" fallback. + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + pub fn mul_vec2(a: Vec2, b: Vec2) -> Vec2 { + a * b + } + "}); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::BinaryOperatorCannotBeApplied + ), + "expected E1008 (BinaryOperatorCannotBeApplied) for `Vec2 * Vec2` \ + when only `Add` (not `Mul`) is implemented, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_struct_impl_neg_dispatches() { + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Neg for Vec2 { + fn neg(self: Self) -> Self { + Vec2::{ x: -self.x, y: -self.y } + } + } + + pub fn neg_vec2(a: Vec2) -> Vec2 { + -a + } + "}); + no_errors(&case); +} + +#[test] +fn test_struct_compound_assignment_dispatches_to_add_method() { + let case = TestCase::new(indoc! {" + struct Vec2 { x: i32, y: i32 } + + impl Add for Vec2 { + fn add(self: Self, rhs: Self) -> Self { + Vec2::{ x: self.x + rhs.x, y: self.y + rhs.y } + } + } + + pub fn add_assign_vec2(mut a: Vec2, b: Vec2) -> Vec2 { + a += b; + a + } + "}); + no_errors(&case); +} + +// ── struct bitwise operator-trait impls +// ────────────────────────────────────── +// +// `BitAnd`/`BitOr`/`BitXor`/`Shl`/`Shr` dispatch through the same +// `OperatorTraits`/`build_operator_dispatch` machinery as arithmetic once a +// struct is involved (`build_bitwise_result`, `tir/builder.rs`) — primitives +// keep the pre-existing native fast path (see `is_integer()`/`== BOOL` +// checks there), so these tests only need to cover the struct side; the +// primitive side is unchanged and already covered by every existing +// bitwise-on-primitive test. + +#[test] +fn test_struct_impl_bitand_dispatches() { + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + impl BitAnd for Flags { + fn bitand(self: Self, rhs: Self) -> Self { + Flags::{ bits: self.bits & rhs.bits } + } + } + + pub fn and_flags(a: Flags, b: Flags) -> Flags { + a & b + } + "}); + no_errors(&case); +} + +#[test] +fn test_struct_without_bitand_impl_reports_diagnostic() { + // Same type on both sides but no `BitAnd` impl — before + // `build_bitwise_result` existed this fell through to the generic + // "type mismatch" catch-all (misleading, since the types *do* match); + // it must now report the accurate "operator cannot be applied" code, + // exactly like the arithmetic path already does. + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + pub fn and_flags(a: Flags, b: Flags) -> Flags { + a & b + } + "}); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::BinaryOperatorCannotBeApplied + ), + "expected E1008 (BinaryOperatorCannotBeApplied) for `Flags & Flags` \ + with no `BitAnd` impl, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_struct_bitand_impl_does_not_grant_other_bitwise_operators() { + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + impl BitAnd for Flags { + fn bitand(self: Self, rhs: Self) -> Self { + Flags::{ bits: self.bits & rhs.bits } + } + } + + pub fn or_flags(a: Flags, b: Flags) -> Flags { + a | b + } + "}); + assert!( + has_error_code( + &case.tir, + DiagnosticCode::BinaryOperatorCannotBeApplied + ), + "expected E1008 (BinaryOperatorCannotBeApplied) for `Flags | Flags` \ + when only `BitAnd` (not `BitOr`) is implemented, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_generic_bitand_bound_dispatches() { + let case = TestCase::new(indoc! {" + pub fn and_it(a: T, b: T) -> T { + a & b + } + + pub fn use_and(a: i32, b: i32) -> i32 { + and_it(a, b) + } + "}); + no_errors(&case); +} + +// ── struct `BitNot` overload (unary `^`) ──────────────────────────────────── +// +// `^x` reuses the same dispatch machinery as `-x` (`Neg`) — +// `build_unary_operator_dispatch`, generalized via `OperatorTraits:: +// for_unary_op` — gated the same way the binary bitwise operators are: +// primitives/typeset-bounded types keep the pre-existing native fast path +// (`build_unary_expression`'s `is_primitive()` check, unchanged), only a +// struct falls through to real dispatch. + +#[test] +fn test_struct_impl_bitnot_dispatches() { + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + impl BitNot for Flags { + fn bitnot(self: Self) -> Self { + Flags::{ bits: ^self.bits } + } + } + + pub fn not_flags(a: Flags) -> Flags { + ^a + } + "}); + no_errors(&case); +} + +#[test] +fn test_struct_without_bitnot_impl_reports_diagnostic() { + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + pub fn not_flags(a: Flags) -> Flags { + ^a + } + "}); + assert!( + has_error_code(&case.tir, DiagnosticCode::UnaryOperatorCannotBeApplied), + "expected E1010 (UnaryOperatorCannotBeApplied) for `^Flags` with \ + no `BitNot` impl, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_struct_bitnot_impl_does_not_grant_neg() { + // Implementing `BitNot` for a struct must not make `Neg` resolve too + // — each unary operator dispatches through its own trait + // independently (`OperatorTraits::for_unary_op`), no "implements one, + // gets all" fallback, mirroring the binary operators' equivalent test. + let case = TestCase::new(indoc! {" + struct Flags { bits: i32 } + + impl BitNot for Flags { + fn bitnot(self: Self) -> Self { + Flags::{ bits: ^self.bits } + } + } + + pub fn neg_flags(a: Flags) -> Flags { + -a + } + "}); + assert!( + has_error_code(&case.tir, DiagnosticCode::UnaryOperatorCannotBeApplied), + "expected E1010 (UnaryOperatorCannotBeApplied) for `-Flags` when \ + only `BitNot` (not `Neg`) is implemented, got: {:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} + +#[test] +fn test_generic_bitnot_bound_dispatches() { + // `build_unary_operator_dispatch` now has a `Type::TypeParam` branch + // mirroring the binary `build_operator_dispatch` — a bare type param + // bounded by `BitNot` dispatches through `resolve_bounded_operator_method` + // instead of failing with "operator cannot be applied". + let case = TestCase::new(indoc! {" + pub fn not_it(a: T) -> T { + ^a + } + + pub fn use_not(a: i32) -> i32 { + not_it(a) + } + "}); + assert!( + !case + .tir + .diagnostics + .iter() + .any(|d| d.severity == Severity::Error), + "{:?}", + case.tir + .diagnostics + .iter() + .map(|d| &d.message) + .collect::>() + ); +} diff --git a/crates/wx-compiler/src/wasm/mod.rs b/crates/wx-compiler/src/wasm/mod.rs new file mode 100644 index 0000000..5549968 --- /dev/null +++ b/crates/wx-compiler/src/wasm/mod.rs @@ -0,0 +1,540 @@ +//! The WASM-shaped instruction representation the scheduler targets — a +//! flat, linear sequence of instructions for a stack machine, as opposed to +//! the tree (`mir::Function`) or graph (`opt::Function`) representations +//! earlier in the pipeline. `opt::scheduler` is the sole producer of a +//! [`Function`] today; it doesn't own these types — they're the contract +//! `codegen` consumes — which is also why the peephole optimizations that +//! operate purely on this representation ([`coalesce_locals`], +//! [`peephole_local_tee`]) live here rather than inside the producer. + +use crate::mir; + +#[cfg(test)] +mod tests; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +#[cfg_attr(test, derive(serde::Serialize))] +pub enum ScalarType { + I32, + I64, + F32, + F64, +} + +impl TryFrom for ScalarType { + type Error = (); + fn try_from(ty: mir::Type) -> Result { + Ok(match ty { + mir::Type::I32 + | mir::Type::U32 + | mir::Type::Bool + | mir::Type::U8 + | mir::Type::I8 + | mir::Type::U16 + | mir::Type::I16 + | mir::Type::Function { .. } => ScalarType::I32, + mir::Type::I64 | mir::Type::U64 => ScalarType::I64, + mir::Type::Pointer { kind, .. } => match kind { + mir::MemoryKind::Memory32 => ScalarType::I32, + mir::MemoryKind::Memory64 => ScalarType::I64, + }, + mir::Type::F32 => ScalarType::F32, + mir::Type::F64 => ScalarType::F64, + _ => return Err(()), + }) + } +} + +/// Recursively flatten a MIR type into its constituent WASM scalar types. +/// Unit/Never produce zero slots; Aggregate recurses into its fields. The +/// one place this conversion happens; every producer of a `Function` should +/// call this rather than repeating the match itself. +pub fn flatten_type_to_scalars( + ty: mir::Type, + aggregates: &[mir::Aggregate], +) -> Vec { + match ty { + mir::Type::Unit | mir::Type::Never => vec![], + mir::Type::Aggregate { aggregate_index } => aggregates + [aggregate_index as usize] + .values + .iter() + .flat_map(|&f| flatten_type_to_scalars(f, aggregates)) + .collect(), + t => vec![ScalarType::try_from(t).expect("must be scalar")], + } +} + +/// The `memarg` immediate carried by every WebAssembly memory instruction. +#[cfg_attr(test, derive(Debug, PartialEq, serde::Serialize))] +#[derive(Clone, Copy)] +pub struct MemArg { + /// Log2 of the alignment hint in bytes (e.g. 2 = 4-byte aligned). + pub align: u32, + /// Static byte offset added to the runtime address. + pub offset: u32, + pub memory: crate::ast::DefId, +} + +/// A WASM local variable declaration. +#[cfg_attr(test, derive(serde::Serialize))] +#[cfg_attr(test, serde(transparent))] +#[derive(Clone, Copy)] +pub struct Local { + pub ty: ScalarType, +} + +#[cfg_attr(test, derive(serde::Serialize))] +pub struct Function { + /// Locals in declaration order (params first, then spill slots). + pub locals: Vec, + /// Flat WASM stack-machine instruction sequence for the function body. + pub body: Vec, + /// Flat arena backing every [`Instruction::BrTable`] in `body` — each + /// instruction stores a `(start, len)` range into this `Vec` instead of + /// its own heap allocation, so `br_table`-heavy functions don't pay one + /// allocation per switch. + pub br_table_depths: Vec, +} + +/// A subset of WASM instructions produced by the scheduler. +/// Each variant maps 1-to-1 to a WASM opcode; operands are pushed onto the +/// implicit value stack by the preceding instructions. +#[cfg_attr(test, derive(Debug, serde::Serialize))] +#[derive(Clone)] +pub enum Instruction { + // Constants + I32Const(i32), + I64Const(i64), + F32Const(f32), + F64Const(f64), + // Locals + LocalGet(u32), + LocalSet(u32), + LocalTee(u32), + // Globals + GlobalGet(crate::ast::DefId), + GlobalSet(crate::ast::DefId), + // Arithmetic — i32 + I32Add, + I32Sub, + I32Mul, + I32DivS, + I32DivU, + I32RemS, + I32RemU, + I32And, + I32Or, + I32Xor, + I32Shl, + I32ShrS, + I32ShrU, + I32Eqz, + I32Eq, + I32Ne, + I32LtS, + I32LtU, + I32LeS, + I32LeU, + I32GtS, + I32GtU, + I32GeS, + I32GeU, + I32Clz, + I32Ctz, + // Arithmetic — i64 + I64Add, + I64Sub, + I64Mul, + I64DivS, + I64DivU, + I64RemS, + I64RemU, + I64And, + I64Or, + I64Xor, + I64Shl, + I64ShrS, + I64ShrU, + I64Eqz, + I64Eq, + I64Ne, + I64LtS, + I64LtU, + I64LeS, + I64LeU, + I64GtS, + I64GtU, + I64GeS, + I64GeU, + // Arithmetic — f32 / f64 + F32Add, + F32Sub, + F32Mul, + F32Div, + F32Neg, + F32Sqrt, + F32Abs, + F32Floor, + F32Ceil, + F32Trunc, + F64Add, + F64Sub, + F64Mul, + F64Div, + F64Neg, + F64Sqrt, + F64Abs, + F64Floor, + F64Ceil, + F64Trunc, + F32Eq, + F32Ne, + F32Lt, + F32Le, + F32Gt, + F32Ge, + F64Eq, + F64Ne, + F64Lt, + F64Le, + F64Gt, + F64Ge, + // Control flow + Block { + ty: BlockType, + }, + Loop { + ty: BlockType, + }, + If { + ty: BlockType, + }, + Else, + End, + Br(u32), // break by depth + BrIf(u32), + /// `[start, start + len)` range into [`Function::br_table_depths`]. + /// All entries but the last are the concrete per-case branch depths; the + /// last entry is the default branch depth. + BrTable { + start: u32, + len: u32, + }, + Return, + Unreachable, + Drop, + // Calls + /// Direct call; the encoder resolves the WASM function index from + /// `func_wasm_index`, covering both internal and imported functions. + Call(crate::ast::DefId), + /// Indirect call via the function table; the encoder resolves `type_index` + /// from the referenced MIR signature. + CallIndirectSym { + mir_sig_index: u32, + }, + // Memory + MemorySize(crate::ast::DefId), + MemoryGrow(crate::ast::DefId), + MemoryFill(crate::ast::DefId), + MemoryCopy { + dst: crate::ast::DefId, + src: crate::ast::DefId, + }, + /// Wasm linear-memory index as an `i32.const`, resolved at codegen. + MemoryIndex { + memory: crate::ast::DefId, + }, + // Pointer load/store + I32Load8S(MemArg), + I32Load8U(MemArg), + I32Load16S(MemArg), + I32Load16U(MemArg), + I32Load(MemArg), + I64Load(MemArg), + F32Load(MemArg), + F64Load(MemArg), + I32Store8(MemArg), + I32Store16(MemArg), + I32Store(MemArg), + I64Store(MemArg), + F32Store(MemArg), + F64Store(MemArg), + // Conversion + I64ExtendI32S, + I64ExtendI32U, + I32WrapI64, + F32ConvertI32S, + F32ConvertI32U, + F32ConvertI64S, + F32ConvertI64U, + F64ConvertI32S, + F64ConvertI32U, + F64ConvertI64S, + F64ConvertI64U, + I32TruncF32S, + I32TruncF32U, + I32TruncF64S, + I32TruncF64U, + I64TruncF32S, + I64TruncF32U, + I64TruncF64S, + I64TruncF64U, + F64PromoteF32, + F32DemoteF64, + // Nop (used as a placeholder) + Nop, + // Symbolic references — resolved to concrete i32.const values by the + // codegen encoder, which has access to the string pool and function table. + /// A function referenced as a value; the encoder pushes it into the + /// function table and emits `i32.const `. + FunctionPointer(crate::ast::DefId), + /// End of the static data section for a given memory (base of writable + /// heap); the encoder emits `i32.const `. + DataSectionEnd { + memory: crate::ast::DefId, + }, + /// A static array; the encoder resolves the index to a byte offset in the + /// data segment and emits `i32.const `. + StaticDataPointer { + data_index: u32, + ty: ScalarType, + }, +} + +#[cfg_attr(test, derive(Debug, serde::Serialize))] +#[derive(Clone, Copy)] +pub enum BlockType { + Empty, + Value(ScalarType), +} + +// ── Local coalescing ────────────────────────────────────────────────────────── + +/// Reuse WASM local slots for spilled values whose live ranges do not overlap. +/// +/// Each spill slot has a live range `[first_write, last_read]` measured in flat +/// instruction-list positions. Two slots of the same WASM type can share a slot +/// number when one range ends strictly before the other begins. +/// +/// Param slots (indices `0..params_count`) are never remapped — WASM passes +/// arguments via the first N locals and the ABI cannot be changed. +pub fn coalesce_locals( + body: &mut [Instruction], + locals: &mut Vec, + params_count: usize, +) { + let n = locals.len(); + if n <= params_count { + return; + } + + // ── Step 1: compute live ranges ────────────────────────────────────────── + let mut first_write = vec![usize::MAX; n]; + let mut last_read = vec![0usize; n]; + + for (i, instr) in body.iter().enumerate() { + match instr { + Instruction::LocalSet(s) => { + let s = *s as usize; + if s >= params_count { + first_write[s] = first_write[s].min(i); + } + } + Instruction::LocalGet(s) => { + let s = *s as usize; + if s >= params_count { + last_read[s] = last_read[s].max(i); + } + } + Instruction::LocalTee(s) => { + let s = *s as usize; + if s >= params_count { + first_write[s] = first_write[s].min(i); + last_read[s] = last_read[s].max(i); + } + } + _ => {} + } + } + + // A `[first_write, last_read]` window computed from flat textual positions + // is only valid for straight-line code: it implicitly assumes every + // instruction executes at most once. `Loop` is the one construct that + // breaks that assumption — its body is a single textual span that + // actually runs many times, via a back-edge (`Br`) to the `Loop` + // instruction itself. A slot written once before the loop and read once + // inside it gets `last_read` pinned to that first textual occurrence, + // even though the same read recurs on every later iteration. If some + // other slot's write/read pair falls entirely after that position but + // still inside the loop body, the ranges look non-overlapping and the + // allocator happily hands them the same physical local — which then + // gets clobbered by the second slot's write before the first slot's + // value is read again on the next iteration. + // + // Fix: widen every slot touched anywhere inside a loop so its range + // covers that loop's entire `[Loop, End]` span (and transitively every + // loop it's nested in, since the same argument applies at each nesting + // level). Two slots both live inside the same loop then always overlap + // and can never be coalesced together, which is what correctness under + // repeated execution requires. + let mut frame_starts: Vec = Vec::new(); + let mut loop_spans: Vec<(usize, usize)> = Vec::new(); + for (i, instr) in body.iter().enumerate() { + match instr { + Instruction::Block { .. } | Instruction::If { .. } => { + frame_starts.push(usize::MAX); + } + Instruction::Loop { .. } => { + frame_starts.push(i); + } + Instruction::End => { + if let Some(start) = frame_starts.pop() { + if start != usize::MAX { + loop_spans.push((start, i)); + } + } + } + _ => {} + } + } + + for &(ls, le) in &loop_spans { + for instr in &body[ls..=le] { + let s = match instr { + Instruction::LocalGet(s) + | Instruction::LocalSet(s) + | Instruction::LocalTee(s) => *s as usize, + _ => continue, + }; + if s >= params_count { + first_write[s] = first_write[s].min(ls); + last_read[s] = last_read[s].max(le); + } + } + } + + // Normalize: dead stores (written, never read) collapse to a point range. + // Slots never written (shouldn't normally happen) get range [0, 0]. + for s in params_count..n { + if first_write[s] == usize::MAX { + first_write[s] = 0; + } + if last_read[s] < first_write[s] { + last_read[s] = first_write[s]; + } + } + + // ── Step 2: linear scan ────────────────────────────────────────────────── + let mut order: Vec = (params_count..n).collect(); + order.sort_unstable_by_key(|&s| first_write[s]); + + let ty_idx = |ty: ScalarType| match ty { + ScalarType::I32 => 0usize, + ScalarType::I64 => 1, + ScalarType::F32 => 2, + ScalarType::F64 => 3, + }; + + // Per-type free lists of slot numbers available for reuse. + let mut free: [Vec; 4] = + [Vec::new(), Vec::new(), Vec::new(), Vec::new()]; + // Active intervals: (last_read, new_slot_number, type_index). + let mut active: Vec<(usize, u32, usize)> = Vec::new(); + let mut next_slot = params_count as u32; + let mut mapping = vec![0u32; n]; + for (i, slot) in mapping.iter_mut().enumerate().take(params_count) { + *slot = i as u32; + } + + for old in order { + let start = first_write[old]; + let end = last_read[old]; + let ti = ty_idx(locals[old].ty); + + // Expire intervals that ended strictly before this one starts. + let mut i = 0; + while i < active.len() { + if active[i].0 < start { + let (_, freed, freed_ti) = active.swap_remove(i); + free[freed_ti].push(freed); + } else { + i += 1; + } + } + + let new_slot = free[ti].pop().unwrap_or_else(|| { + let s = next_slot; + next_slot += 1; + s + }); + + mapping[old] = new_slot; + active.push((end, new_slot, ti)); + } + + // ── Step 3: rebuild locals and rewrite instructions ────────────────────── + let new_spill_count = (next_slot - params_count as u32) as usize; + let mut spill_types = vec![ScalarType::I32; new_spill_count]; + for old in params_count..n { + let new = mapping[old] as usize; + if new >= params_count { + spill_types[new - params_count] = locals[old].ty; + } + } + locals.truncate(params_count); + locals.extend(spill_types.into_iter().map(|ty| Local { ty })); + + for instr in body.iter_mut() { + match instr { + Instruction::LocalGet(s) + | Instruction::LocalSet(s) + | Instruction::LocalTee(s) => { + *s = mapping[*s as usize]; + } + _ => {} + } + } +} + +/// Replace `LocalSet(n), LocalGet(n)` pairs with a single `LocalTee(n)`, +/// and eliminate `LocalTee(n), LocalSet(n)` by dropping the redundant tee. +/// +/// `local.tee` writes the top-of-stack value to the local *and* leaves a copy +/// on the stack, which is exactly what set+get does in two instructions. +/// Conversely, `local.tee(n)` immediately followed by `local.set(n)` writes +/// the same value to the local twice — the tee is redundant; a plain set suffices. +pub fn peephole_local_tee(body: &mut Vec) { + let mut out = Vec::with_capacity(body.len()); + let mut i = 0; + while i < body.len() { + if let Instruction::LocalSet(s) = body[i] { + // set(N), get(N), set(N) → set(N): the middle get feeds back into a set + // of the same slot, so both the tee and the redundant write collapse. + if i + 2 < body.len() { + if let (Instruction::LocalGet(g), Instruction::LocalSet(s2)) = + (&body[i + 1], &body[i + 2]) + { + if *g == s && *s2 == s { + out.push(Instruction::LocalSet(s)); + i += 3; + continue; + } + } + } + // set(N), get(N) → tee(N) + if i + 1 < body.len() { + if let Instruction::LocalGet(g) = body[i + 1] { + if s == g { + out.push(Instruction::LocalTee(s)); + i += 2; + continue; + } + } + } + } + out.push(body[i].clone()); + i += 1; + } + *body = out; +} diff --git a/crates/wx-compiler/src/wasm/tests.rs b/crates/wx-compiler/src/wasm/tests.rs new file mode 100644 index 0000000..3bc0b5a --- /dev/null +++ b/crates/wx-compiler/src/wasm/tests.rs @@ -0,0 +1,15 @@ +use super::*; + +#[test] +fn flatten_type_to_scalars_unit_and_never_produce_no_slots() { + assert_eq!(flatten_type_to_scalars(mir::Type::Unit, &[]), vec![]); + assert_eq!(flatten_type_to_scalars(mir::Type::Never, &[]), vec![]); +} + +#[test] +fn flatten_type_to_scalars_scalar_is_one_slot() { + assert_eq!( + flatten_type_to_scalars(mir::Type::I64, &[]), + vec![ScalarType::I64] + ); +} diff --git a/crates/wx-compiler/std/main.wx b/crates/wx-compiler/std/main.wx index 6b20d8a..cb718ee 100644 --- a/crates/wx-compiler/std/main.wx +++ b/crates/wx-compiler/std/main.wx @@ -1,3 +1,102 @@ +#[intrinsic] +pub type i8; + +#[intrinsic] +pub type u8; + +#[intrinsic] +pub type i16; + +#[intrinsic] +pub type u16; + +#[intrinsic] +pub type i32; + +#[intrinsic] +pub type u32; + +#[intrinsic] +pub type i64; + +#[intrinsic] +pub type u64; + +#[intrinsic] +pub type f32; + +#[intrinsic] +pub type f64; + +#[intrinsic] +pub type bool; + +#[intrinsic] +pub type char; + +#[intrinsic] +pub type never; + +#[tag = "add"] +pub trait Add { + fn add(self: Self, rhs: Self) -> Self; +} + +#[tag = "sub"] +pub trait Sub { + fn sub(self: Self, rhs: Self) -> Self; +} + +#[tag = "mul"] +pub trait Mul { + fn mul(self: Self, rhs: Self) -> Self; +} + +#[tag = "div"] +pub trait Div { + fn div(self: Self, rhs: Self) -> Self; +} + +#[tag = "rem"] +pub trait Rem { + fn rem(self: Self, rhs: Self) -> Self; +} + +#[tag = "neg"] +pub trait Neg { + fn neg(self: Self) -> Self; +} + +#[tag = "bitand"] +pub trait BitAnd { + fn bitand(self: Self, rhs: Self) -> Self; +} + +#[tag = "bitor"] +pub trait BitOr { + fn bitor(self: Self, rhs: Self) -> Self; +} + +#[tag = "bitxor"] +pub trait BitXor { + fn bitxor(self: Self, rhs: Self) -> Self; +} + +#[tag = "shl"] +pub trait Shl { + fn shl(self: Self, rhs: Self) -> Self; +} + +#[tag = "shr"] +pub trait Shr { + fn shr(self: Self, rhs: Self) -> Self; +} + +#[tag = "bitnot"] +pub trait BitNot { + fn bitnot(self: Self) -> Self; +} + pub const PAGE_SIZE: u32 = 65536; #[intrinsic] @@ -7,13 +106,13 @@ pub fn memory_grow(mem: Mem, delta: Mem::Size) -> Mem::Size::Signed pub fn memory_size(mem: Mem) -> Mem::Size; #[intrinsic] -pub fn slice_len(slice: Mem::[]T) -> Mem::Size; +pub fn slice_len(slice: Mem::&[T]) -> Mem::Size; #[intrinsic] -pub fn slice_ptr(slice: Mem::[]T) -> Mem::*T; +pub fn slice_ptr(slice: Mem::&[T]) -> Mem::&T; #[intrinsic] -pub fn slice_from_parts(data: Mem::*T, len: Mem::Size) -> Mem::[]T; +pub fn slice_from_parts(data: Mem::&T, len: Mem::Size) -> Mem::&[T]; #[intrinsic] pub fn size_of() -> Mem::Size; @@ -22,14 +121,14 @@ pub fn size_of() -> Mem::Size; pub fn align_of() -> Mem::Size; #[intrinsic] -pub fn memory_fill(dst: Mem::*mut u8, val: u8, len: Mem::Size); +pub fn memory_fill(dst: Mem::*u8, val: u8, len: Mem::Size); #[intrinsic] pub fn memory_copy< Size: PointerSize, SrcMem: Memory where { Size = Size }, DstMem: Memory where { Size = Size }, ->(dst: DstMem::*mut u8, src: SrcMem::*u8, len: Size); +>(dst: DstMem::*u8, src: SrcMem::&u8, len: Size); #[intrinsic] pub fn i64_extend_i32(value: i32) -> i64; @@ -64,6 +163,132 @@ pub fn f32_ceil(value: f32) -> f32; #[intrinsic] pub fn f64_ceil(value: f64) -> f64; +#[intrinsic] +pub fn f32_trunc(value: f32) -> f32; + +#[intrinsic] +pub fn f64_trunc(value: f64) -> f64; + +#[intrinsic] +pub fn i32_neg(value: i32) -> i32; + +#[intrinsic] +pub fn i64_neg(value: i64) -> i64; + +#[intrinsic] +pub fn f32_neg(value: f32) -> f32; + +#[intrinsic] +pub fn f64_neg(value: f64) -> f64; + +#[intrinsic] +pub fn i32_add(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn i64_add(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn f32_add(a: f32, b: f32) -> f32; + +#[intrinsic] +pub fn f64_add(a: f64, b: f64) -> f64; + +#[intrinsic] +pub fn i32_sub(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn i64_sub(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn f32_sub(a: f32, b: f32) -> f32; + +#[intrinsic] +pub fn f64_sub(a: f64, b: f64) -> f64; + +#[intrinsic] +pub fn i32_mul(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn i64_mul(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn f32_mul(a: f32, b: f32) -> f32; + +#[intrinsic] +pub fn f64_mul(a: f64, b: f64) -> f64; + +#[intrinsic] +pub fn i32_div(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn u32_div(a: u32, b: u32) -> u32; + +#[intrinsic] +pub fn i64_div(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn u64_div(a: u64, b: u64) -> u64; + +#[intrinsic] +pub fn f32_div(a: f32, b: f32) -> f32; + +#[intrinsic] +pub fn f64_div(a: f64, b: f64) -> f64; + +#[intrinsic] +pub fn i32_rem(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn u32_rem(a: u32, b: u32) -> u32; + +#[intrinsic] +pub fn i64_rem(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn u64_rem(a: u64, b: u64) -> u64; + +#[intrinsic] +pub fn i32_bitand(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn i64_bitand(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn i32_bitor(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn i64_bitor(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn i32_bitxor(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn i64_bitxor(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn i32_shl(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn i64_shl(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn i32_shr(a: i32, b: i32) -> i32; + +#[intrinsic] +pub fn u32_shr(a: u32, b: u32) -> u32; + +#[intrinsic] +pub fn i64_shr(a: i64, b: i64) -> i64; + +#[intrinsic] +pub fn u64_shr(a: u64, b: u64) -> u64; + +#[intrinsic] +pub fn i32_bitnot(value: i32) -> i32; + +#[intrinsic] +pub fn i64_bitnot(value: i64) -> i64; + #[intrinsic] pub fn f32_convert_i32(value: i32) -> f32; @@ -119,164 +344,839 @@ pub fn f64_promote_f32(value: f32) -> f64; pub fn f32_demote_f64(value: f64) -> f32; impl f32 { - pub const PI: f32 = 3.14159265358979323846; + pub const PI: f32 = 3.14159265358979323846264338327950288; + + #[inline] + pub fn trunc(self: Self) -> Self { f32_trunc(self) } } impl f64 { - pub const PI: f64 = 3.14159265358979323846; + pub const PI: f64 = 3.14159265358979323846264338327950288; + + #[inline] + pub fn trunc(self: Self) -> Self { f64_trunc(self) } } -pub typeset Integer { u8, i8, u16, i16, u32, i32, u64, i64 } +impl Add for i32 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { i32_add(self, rhs) } +} -trait UnsignedInt { - type Signed: SignedInt where { Unsigned = Self }; +impl Sub for i32 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { i32_sub(self, rhs) } } -trait SignedInt { - type Unsigned: UnsignedInt where { Signed = Self }; +impl Mul for i32 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { i32_mul(self, rhs) } } -impl UnsignedInt for u8 { - type Signed = i8; +impl Div for i32 { + #[inline] + fn div(self: Self, rhs: Self) -> Self { i32_div(self, rhs) } } -impl UnsignedInt for u16 { - type Signed = i16; +impl Rem for i32 { + #[inline] + fn rem(self: Self, rhs: Self) -> Self { i32_rem(self, rhs) } } -impl UnsignedInt for u32 { - type Signed = i32; +impl Neg for i32 { + #[inline] + fn neg(self: Self) -> Self { i32_neg(self) } } -impl UnsignedInt for u64 { - type Signed = i64; +impl BitAnd for i32 { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { i32_bitand(self, rhs) } } -impl SignedInt for i8 { - type Unsigned = u8; +impl BitOr for i32 { + #[inline] + fn bitor(self: Self, rhs: Self) -> Self { i32_bitor(self, rhs) } } -impl SignedInt for i16 { - type Unsigned = u16; +impl BitXor for i32 { + #[inline] + fn bitxor(self: Self, rhs: Self) -> Self { i32_bitxor(self, rhs) } } -impl SignedInt for i32 { - type Unsigned = u32; +impl Shl for i32 { + #[inline] + fn shl(self: Self, rhs: Self) -> Self { i32_shl(self, rhs) } } -impl SignedInt for i64 { - type Unsigned = u64; +impl Shr for i32 { + #[inline] + fn shr(self: Self, rhs: Self) -> Self { i32_shr(self, rhs) } } -#[tag = "pointer_size"] -pub typeset PointerSize { u32, u64 } +impl BitNot for i32 { + #[inline] + fn bitnot(self: Self) -> Self { i32_bitnot(self) } +} -pub trait Memory { - type Size: PointerSize + UnsignedInt; +impl Add for u32 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { + i32_add(self as i32, rhs as i32) as u32 + } +} - const MEMORY_INDEX: u32; +impl Sub for u32 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { + i32_sub(self as i32, rhs as i32) as u32 + } +} - const DATA_END: Self::*u8; +impl Mul for u32 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { + i32_mul(self as i32, rhs as i32) as u32 + } +} +impl Div for u32 { #[inline] - fn grow(self, delta: Self::Size) -> Self::Size::Signed { - memory_grow(self, delta) + fn div(self: Self, rhs: Self) -> Self { u32_div(self, rhs) } +} + +impl Rem for u32 { + #[inline] + fn rem(self: Self, rhs: Self) -> Self { u32_rem(self, rhs) } +} + +impl BitAnd for u32 { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { + i32_bitand(self as i32, rhs as i32) as u32 } +} +impl BitOr for u32 { #[inline] - fn size(self) -> Self::Size { - memory_size(self) + fn bitor(self: Self, rhs: Self) -> Self { + i32_bitor(self as i32, rhs as i32) as u32 } } -pub struct Layout { - pub size: Mem::Size, - pub align: Mem::Size, +impl BitXor for u32 { + #[inline] + fn bitxor(self: Self, rhs: Self) -> Self { + i32_bitxor(self as i32, rhs as i32) as u32 + } } -impl Layout { +impl Shl for u32 { #[inline] - pub fn of() -> Self { - Self::{ size: size_of::(), align: align_of::() } + fn shl(self: Self, rhs: Self) -> Self { + i32_shl(self as i32, rhs as i32) as u32 } +} +impl Shr for u32 { #[inline] - pub fn array(count: Mem::Size) -> Self { - Self::{ align: align_of::(), size: size_of::() * count } + fn shr(self: Self, rhs: Self) -> Self { u32_shr(self, rhs) } +} + +impl BitNot for u32 { + #[inline] + fn bitnot(self: Self) -> Self { + i32_bitnot(self as i32) as u32 } } -pub trait Allocator { - type Mem: Memory; +impl Add for i64 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { i64_add(self, rhs) } +} - fn reserve(self: Self::Mem::*mut Self, layout: Layout) -> Self::Mem::*mut u8; +impl Sub for i64 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { i64_sub(self, rhs) } +} +impl Mul for i64 { #[inline] - fn alloc(self: Self::Mem::*mut Self, value: T) -> Self::Mem::*mut T { - local ptr = self.reserve(Layout::of::()) as Self::Mem::*mut T; - ptr.* = value; - ptr - } + fn mul(self: Self, rhs: Self) -> Self { i64_mul(self, rhs) } +} +impl Div for i64 { #[inline] - fn alloc_slice(self: Self::Mem::*mut Self, len: Self::Mem::Size) -> Self::Mem::[]mut T { - slice_from_parts( - self.reserve(Layout::array::(len)) as Self::Mem::*T, - len, - ) as _ - } + fn div(self: Self, rhs: Self) -> Self { i64_div(self, rhs) } } -pub module ptr { +impl Rem for i64 { #[inline] - pub fn null() -> Mem::*T { - 0 as _ - } + fn rem(self: Self, rhs: Self) -> Self { i64_rem(self, rhs) } +} +impl Neg for i64 { #[inline] - pub fn null_mut() -> Mem::*mut T { - 0 as _ - } + fn neg(self: Self) -> Self { i64_neg(self) } +} +impl BitAnd for i64 { #[inline] - pub fn is_null(ptr: Mem::*T) -> bool { - ptr as Mem::Size == 0 - } + fn bitand(self: Self, rhs: Self) -> Self { i64_bitand(self, rhs) } +} +impl BitOr for i64 { #[inline] - pub fn cast_mut(ptr: Mem::*T) -> Mem::*mut T { - ptr as _ - } + fn bitor(self: Self, rhs: Self) -> Self { i64_bitor(self, rhs) } +} +impl BitXor for i64 { #[inline] - pub fn add(ptr: Mem::*T, count: Mem::Size) -> Mem::*T { - (ptr as Mem::Size + count * size_of::()) as _ - } + fn bitxor(self: Self, rhs: Self) -> Self { i64_bitxor(self, rhs) } +} +impl Shl for i64 { #[inline] - pub fn sub(ptr: Mem::*T, count: Mem::Size) -> Mem::*T { - (ptr as Mem::Size - count * size_of::()) as _ + fn shl(self: Self, rhs: Self) -> Self { i64_shl(self, rhs) } +} + +impl Shr for i64 { + #[inline] + fn shr(self: Self, rhs: Self) -> Self { i64_shr(self, rhs) } +} + +impl BitNot for i64 { + #[inline] + fn bitnot(self: Self) -> Self { i64_bitnot(self) } +} + +impl Add for u64 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { + i64_add(self as i64, rhs as i64) as u64 } +} +impl Sub for u64 { #[inline] - pub fn add_mut(ptr: Mem::*mut T, count: Mem::Size) -> Mem::*mut T { - (ptr as Mem::Size + count * size_of::()) as _ + fn sub(self: Self, rhs: Self) -> Self { + i64_sub(self as i64, rhs as i64) as u64 } +} +impl Mul for u64 { #[inline] - pub fn sub_mut(ptr: Mem::*mut T, count: Mem::Size) -> Mem::*mut T { + fn mul(self: Self, rhs: Self) -> Self { + i64_mul(self as i64, rhs as i64) as u64 + } +} + +impl Div for u64 { + #[inline] + fn div(self: Self, rhs: Self) -> Self { u64_div(self, rhs) } +} + +impl Rem for u64 { + #[inline] + fn rem(self: Self, rhs: Self) -> Self { u64_rem(self, rhs) } +} + +impl BitAnd for u64 { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { + i64_bitand(self as i64, rhs as i64) as u64 + } +} + +impl BitOr for u64 { + #[inline] + fn bitor(self: Self, rhs: Self) -> Self { + i64_bitor(self as i64, rhs as i64) as u64 + } +} + +impl BitXor for u64 { + #[inline] + fn bitxor(self: Self, rhs: Self) -> Self { + i64_bitxor(self as i64, rhs as i64) as u64 + } +} + +impl Shl for u64 { + #[inline] + fn shl(self: Self, rhs: Self) -> Self { + i64_shl(self as i64, rhs as i64) as u64 + } +} + +impl Shr for u64 { + #[inline] + fn shr(self: Self, rhs: Self) -> Self { u64_shr(self, rhs) } +} + +impl BitNot for u64 { + #[inline] + fn bitnot(self: Self) -> Self { + i64_bitnot(self as i64) as u64 + } +} + +impl Add for f32 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { f32_add(self, rhs) } +} + +impl Sub for f32 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { f32_sub(self, rhs) } +} + +impl Mul for f32 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { f32_mul(self, rhs) } +} + +impl Div for f32 { + #[inline] + fn div(self: Self, rhs: Self) -> Self { f32_div(self, rhs) } +} + +impl Neg for f32 { + #[inline] + fn neg(self: Self) -> Self { f32_neg(self) } +} + +impl Rem for f32 { + // Matches Rust/C `fmod`: truncating division, result has the sign of + // the dividend. + #[inline] + fn rem(self: Self, rhs: Self) -> Self { + self - rhs * (self / rhs).trunc() + } +} + +impl Add for f64 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { f64_add(self, rhs) } +} + +impl Sub for f64 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { f64_sub(self, rhs) } +} + +impl Mul for f64 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { f64_mul(self, rhs) } +} + +impl Div for f64 { + #[inline] + fn div(self: Self, rhs: Self) -> Self { f64_div(self, rhs) } +} + +impl Neg for f64 { + #[inline] + fn neg(self: Self) -> Self { f64_neg(self) } +} + +impl Rem for f64 { + // Matches Rust/C `fmod`: truncating division, result has the sign of + // the dividend. + #[inline] + fn rem(self: Self, rhs: Self) -> Self { + self - rhs * (self / rhs).trunc() + } +} + +impl Add for i8 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { + i32_add(self as i32, rhs as i32) as i8 + } +} + +impl Sub for i8 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { + i32_sub(self as i32, rhs as i32) as i8 + } +} + +impl Mul for i8 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { + i32_mul(self as i32, rhs as i32) as i8 + } +} + +impl Div for i8 { + #[inline] + fn div(self: Self, rhs: Self) -> Self { + i32_div(self as i32, rhs as i32) as i8 + } +} + +impl Rem for i8 { + #[inline] + fn rem(self: Self, rhs: Self) -> Self { + i32_rem(self as i32, rhs as i32) as i8 + } +} + +impl Neg for i8 { + #[inline] + fn neg(self: Self) -> Self { i32_neg(self as i32) as i8 } +} + +impl BitAnd for i8 { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { + i32_bitand(self as i32, rhs as i32) as i8 + } +} + +impl BitOr for i8 { + #[inline] + fn bitor(self: Self, rhs: Self) -> Self { + i32_bitor(self as i32, rhs as i32) as i8 + } +} + +impl BitXor for i8 { + #[inline] + fn bitxor(self: Self, rhs: Self) -> Self { + i32_bitxor(self as i32, rhs as i32) as i8 + } +} + +impl Shl for i8 { + #[inline] + fn shl(self: Self, rhs: Self) -> Self { + i32_shl(self as i32, rhs as i32) as i8 + } +} + +impl Shr for i8 { + #[inline] + fn shr(self: Self, rhs: Self) -> Self { + i32_shr(self as i32, rhs as i32) as i8 + } +} + +impl BitNot for i8 { + #[inline] + fn bitnot(self: Self) -> Self { i32_bitnot(self as i32) as i8 } +} + +impl Add for u8 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { + i32_add(self as i32, rhs as i32) as u8 + } +} + +impl Sub for u8 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { + i32_sub(self as i32, rhs as i32) as u8 + } +} + +impl Mul for u8 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { + i32_mul(self as i32, rhs as i32) as u8 + } +} + +impl Div for u8 { + #[inline] + fn div(self: Self, rhs: Self) -> Self { + u32_div(self as u32, rhs as u32) as u8 + } +} + +impl Rem for u8 { + #[inline] + fn rem(self: Self, rhs: Self) -> Self { + u32_rem(self as u32, rhs as u32) as u8 + } +} + +impl BitAnd for u8 { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { + i32_bitand(self as i32, rhs as i32) as u8 + } +} + +impl BitOr for u8 { + #[inline] + fn bitor(self: Self, rhs: Self) -> Self { + i32_bitor(self as i32, rhs as i32) as u8 + } +} + +impl BitXor for u8 { + #[inline] + fn bitxor(self: Self, rhs: Self) -> Self { + i32_bitxor(self as i32, rhs as i32) as u8 + } +} + +impl Shl for u8 { + #[inline] + fn shl(self: Self, rhs: Self) -> Self { + i32_shl(self as i32, rhs as i32) as u8 + } +} + +impl Shr for u8 { + #[inline] + fn shr(self: Self, rhs: Self) -> Self { + u32_shr(self as u32, rhs as u32) as u8 + } +} + +impl BitNot for u8 { + #[inline] + fn bitnot(self: Self) -> Self { i32_bitnot(self as i32) as u8 } +} + +impl Add for i16 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { + i32_add(self as i32, rhs as i32) as i16 + } +} + +impl Sub for i16 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { + i32_sub(self as i32, rhs as i32) as i16 + } +} + +impl Mul for i16 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { + i32_mul(self as i32, rhs as i32) as i16 + } +} + +impl Div for i16 { + #[inline] + fn div(self: Self, rhs: Self) -> Self { + i32_div(self as i32, rhs as i32) as i16 + } +} + +impl Rem for i16 { + #[inline] + fn rem(self: Self, rhs: Self) -> Self { + i32_rem(self as i32, rhs as i32) as i16 + } +} + +impl Neg for i16 { + #[inline] + fn neg(self: Self) -> Self { i32_neg(self as i32) as i16 } +} + +impl BitAnd for i16 { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { + i32_bitand(self as i32, rhs as i32) as i16 + } +} + +impl BitOr for i16 { + #[inline] + fn bitor(self: Self, rhs: Self) -> Self { + i32_bitor(self as i32, rhs as i32) as i16 + } +} + +impl BitXor for i16 { + #[inline] + fn bitxor(self: Self, rhs: Self) -> Self { + i32_bitxor(self as i32, rhs as i32) as i16 + } +} + +impl Shl for i16 { + #[inline] + fn shl(self: Self, rhs: Self) -> Self { + i32_shl(self as i32, rhs as i32) as i16 + } +} + +impl Shr for i16 { + #[inline] + fn shr(self: Self, rhs: Self) -> Self { + i32_shr(self as i32, rhs as i32) as i16 + } +} + +impl BitNot for i16 { + #[inline] + fn bitnot(self: Self) -> Self { i32_bitnot(self as i32) as i16 } +} + +impl Add for u16 { + #[inline] + fn add(self: Self, rhs: Self) -> Self { + i32_add(self as i32, rhs as i32) as u16 + } +} + +impl Sub for u16 { + #[inline] + fn sub(self: Self, rhs: Self) -> Self { + i32_sub(self as i32, rhs as i32) as u16 + } +} + +impl Mul for u16 { + #[inline] + fn mul(self: Self, rhs: Self) -> Self { + i32_mul(self as i32, rhs as i32) as u16 + } +} + +impl Div for u16 { + #[inline] + fn div(self: Self, rhs: Self) -> Self { + u32_div(self as u32, rhs as u32) as u16 + } +} + +impl Rem for u16 { + #[inline] + fn rem(self: Self, rhs: Self) -> Self { + u32_rem(self as u32, rhs as u32) as u16 + } +} + +impl BitAnd for u16 { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { + i32_bitand(self as i32, rhs as i32) as u16 + } +} + +impl BitOr for u16 { + #[inline] + fn bitor(self: Self, rhs: Self) -> Self { + i32_bitor(self as i32, rhs as i32) as u16 + } +} + +impl BitXor for u16 { + #[inline] + fn bitxor(self: Self, rhs: Self) -> Self { + i32_bitxor(self as i32, rhs as i32) as u16 + } +} + +impl Shl for u16 { + #[inline] + fn shl(self: Self, rhs: Self) -> Self { + i32_shl(self as i32, rhs as i32) as u16 + } +} + +impl Shr for u16 { + #[inline] + fn shr(self: Self, rhs: Self) -> Self { + u32_shr(self as u32, rhs as u32) as u16 + } +} + +impl BitNot for u16 { + #[inline] + fn bitnot(self: Self) -> Self { i32_bitnot(self as i32) as u16 } +} + +impl BitAnd for bool { + #[inline] + fn bitand(self: Self, rhs: Self) -> Self { + i32_bitand(self as i32, rhs as i32) as bool + } +} + +impl BitOr for bool { + #[inline] + fn bitor(self: Self, rhs: Self) -> Self { + i32_bitor(self as i32, rhs as i32) as bool + } +} + +impl BitXor for bool { + #[inline] + fn bitxor(self: Self, rhs: Self) -> Self { + i32_bitxor(self as i32, rhs as i32) as bool + } +} + +pub typeset Integer { u8, i8, u16, i16, u32, i32, u64, i64 } + +trait UnsignedInt { + type Signed: SignedInt where { Unsigned = Self }; +} + +trait SignedInt { + type Unsigned: UnsignedInt where { Signed = Self }; +} + +impl UnsignedInt for u8 { + type Signed = i8; +} + +impl UnsignedInt for u16 { + type Signed = i16; +} + +impl UnsignedInt for u32 { + type Signed = i32; +} + +impl UnsignedInt for u64 { + type Signed = i64; +} + +impl SignedInt for i8 { + type Unsigned = u8; +} + +impl SignedInt for i16 { + type Unsigned = u16; +} + +impl SignedInt for i32 { + type Unsigned = u32; +} + +impl SignedInt for i64 { + type Unsigned = u64; +} + +#[tag = "pointer_size"] +pub typeset PointerSize { u32, u64 } + +pub trait Memory { + type Size: PointerSize + UnsignedInt; + + const MEMORY_INDEX: u32; + + const DATA_END: Self::*u8; + + #[inline] + fn grow(self, delta: Self::Size) -> Self::Size::Signed { + memory_grow(self, delta) + } + + #[inline] + fn size(self) -> Self::Size { + memory_size(self) + } +} + +pub struct Layout { + pub size: Mem::Size, + pub align: Mem::Size, +} + +impl Layout { + #[inline] + pub fn of() -> Self { + Self::{ size: size_of::(), align: align_of::() } + } + + #[inline] + pub fn array(count: Mem::Size) -> Self { + Self::{ align: align_of::(), size: size_of::() * count } + } +} + +pub trait Allocator { + type Mem: Memory; + + fn reserve(self: Self::Mem::*Self, layout: Layout) -> Self::Mem::*u8; + + #[inline] + fn alloc(self: Self::Mem::*Self, value: T) -> Self::Mem::*T { + local ptr = self.reserve(Layout::of::()) as Self::Mem::*T; + ptr.* = value; + ptr + } + + #[inline] + fn alloc_slice(self: Self::Mem::*Self, len: Self::Mem::Size) -> Self::Mem::*[T] { + slice_from_parts( + self.reserve(Layout::array::(len)) as Self::Mem::&T, + len, + ) as _ + } +} + +pub module ptr { + #[inline] + pub fn null() -> Mem::&T { + 0 as _ + } + + #[inline] + pub fn null_mut() -> Mem::*T { + 0 as _ + } + + #[inline] + pub fn is_null(ptr: Mem::&T) -> bool { + ptr as Mem::Size == 0 + } + + #[inline] + pub fn cast_mut(ptr: Mem::&T) -> Mem::*T { + ptr as _ + } + + #[inline] + pub fn add(ptr: Mem::&T, count: Mem::Size) -> Mem::&T { + (ptr as Mem::Size + count * size_of::()) as _ + } + + #[inline] + pub fn sub(ptr: Mem::&T, count: Mem::Size) -> Mem::&T { + (ptr as Mem::Size - count * size_of::()) as _ + } + + #[inline] + pub fn add_mut(ptr: Mem::*T, count: Mem::Size) -> Mem::*T { + (ptr as Mem::Size + count * size_of::()) as _ + } + + #[inline] + pub fn sub_mut(ptr: Mem::*T, count: Mem::Size) -> Mem::*T { (ptr as Mem::Size - count * size_of::()) as _ } + + #[inline] + pub fn align_up(addr: Mem::Size, align: Mem::Size) -> Mem::Size { + local mask = align - 1; + local result = (addr + mask) & ^mask; + if result < addr { unreachable } + result + } } -impl Mem::[]T { +impl Mem::&[T] { #[inline] pub fn len(self) -> Mem::Size { slice_len(self) } #[inline] - pub fn ptr(self) -> Mem::*T { + pub fn ptr(self) -> Mem::&T { slice_ptr(self) } } diff --git a/crates/wx-fmt/src/lib.rs b/crates/wx-fmt/src/lib.rs index 4117bd4..b4565cf 100644 --- a/crates/wx-fmt/src/lib.rs +++ b/crates/wx-fmt/src/lib.rs @@ -64,7 +64,6 @@ define_text! { Dot => ".", DotStar => ".*", DotAmp => ".&", - DotAmpMut => ".&mut", DotDot => "..", LBrace => "{", LBraceSpace => "{ ", @@ -77,7 +76,6 @@ define_text! { Gt => ">", Star => "*", Underscore => "_", - SliceBrackets => "[]", HashLBracket => "#[", ColonColon => "::", ColonColonLt => "::<", @@ -615,13 +613,15 @@ impl<'a> Builder<'a> { pub_span, name, type_params, - ty, + body, + attributes, .. } => self.build_type_alias_definition( *pub_span, name, type_params, - ty, + body.as_deref(), + attributes, ), ast::Item::Use { path, pub_span } => { let mut items: Vec = Vec::new(); @@ -907,10 +907,20 @@ impl<'a> Builder<'a> { self.arena.group(concat) } ast::ImplItem::Constant { - name, ty, value, .. + pub_span, + attributes, + name, + ty, + value, + .. } => { - let mut nodes: Vec = - vec![self.text(Text::Const), self.symbol(name.inner)]; + let mut nodes: Vec = Vec::new(); + self.build_attributes(&mut nodes, attributes); + if pub_span.is_some() { + nodes.push(self.text(Text::Pub)); + } + nodes.push(self.text(Text::Const)); + nodes.push(self.symbol(name.inner)); if let Some(ty) = ty { nodes.push(self.text(Text::ColonSp)); nodes.push(self.build_type_expression(&ty.inner)); @@ -1067,17 +1077,21 @@ impl<'a> Builder<'a> { pub_span: Option, name: &ast::Spanned, type_params: &[ast::TypeParam], - ty: &ast::Spanned, + body: Option<&ast::Spanned>, + attributes: &[ast::Attribute], ) -> NodeId { let mut nodes: Vec = Vec::new(); + self.build_attributes(&mut nodes, attributes); if pub_span.is_some() { nodes.push(self.text(Text::Pub)); } nodes.push(self.text(Text::TypeKw)); nodes.push(self.symbol(name.inner)); self.build_type_params(&mut nodes, type_params); - nodes.push(self.text(Text::EqSp)); - nodes.push(self.build_type_expression(&ty.inner)); + if let Some(body) = body { + nodes.push(self.text(Text::EqSp)); + nodes.push(self.build_type_expression(&body.inner)); + } nodes.push(self.text(Text::Semi)); self.arena.concat(nodes) } @@ -1862,13 +1876,9 @@ impl<'a> Builder<'a> { let dot_star = self.text(Text::DotStar); self.arena.concat2(ptr_id, dot_star) } - ast::Expression::AddressOf { value, mut_span } => { + ast::Expression::AddressOf { value } => { let val_id = self.build_expression(value); - let suffix = if mut_span.is_some() { - self.text(Text::DotAmpMut) - } else { - self.text(Text::DotAmp) - }; + let suffix = self.text(Text::DotAmp); self.arena.concat2(val_id, suffix) } ast::Expression::StructInit { path, fields } => { @@ -2240,37 +2250,36 @@ impl<'a> Builder<'a> { let concat = self.arena.concat(items); self.arena.group(concat) } - ast::TypeExpression::Pointer { mutability, inner } => { - let mut items: Vec = vec![self.text(Text::Star)]; - if mutability.is_some() { - items.push(self.text(Text::Mut)); - } - items.push(self.build_type_expression(&inner.inner)); + ast::TypeExpression::Pointer { ownership, inner } => { + let items: Vec = vec![ + self.text(ownership_sigil(*ownership)), + self.build_type_expression(&inner.inner), + ]; self.arena.concat(items) } - ast::TypeExpression::Slice { mutability, inner } => { - let mut items: Vec = - vec![self.text(Text::SliceBrackets)]; - if mutability.is_some() { - items.push(self.text(Text::Mut)); - } - items.push(self.build_type_expression(&inner.inner)); + ast::TypeExpression::Slice { ownership, inner } => { + let items: Vec = vec![ + self.text(ownership_sigil(*ownership)), + self.text(Text::LBracket), + self.build_type_expression(&inner.inner), + self.text(Text::RBracket), + ]; self.arena.concat(items) } ast::TypeExpression::Array { - size, - mutability, + ownership, inner, + size, } => { - let mut items: Vec = vec![ + let items: Vec = vec![ + self.text(ownership_sigil(*ownership)), self.text(Text::LBracket), + self.build_type_expression(&inner.inner), + self.text(Text::Semi), + self.text(Text::Space), self.source_text(size.span), self.text(Text::RBracket), ]; - if mutability.is_some() { - items.push(self.text(Text::Mut)); - } - items.push(self.build_type_expression(&inner.inner)); self.arena.concat(items) } ast::TypeExpression::Tuple { elements } => { @@ -2483,6 +2492,13 @@ impl<'a> Renderer<'a> { } } +fn ownership_sigil(ownership: ast::Ownership) -> Text { + match ownership { + ast::Ownership::Exclusive => Text::Star, + ast::Ownership::Shared => Text::Amp, + } +} + pub fn format( ast: &ast::AST, interner: &ast::StringInterner, diff --git a/crates/wx-fmt/src/tests.rs b/crates/wx-fmt/src/tests.rs index b0fd402..503b908 100644 --- a/crates/wx-fmt/src/tests.rs +++ b/crates/wx-fmt/src/tests.rs @@ -805,14 +805,14 @@ fn test_format_local_definition_wraps() { // Using FB_WIDTH (a named constant) makes the expression exceed 80 cols. assert_eq!( fmt( - "memory heap: Memory where { Size = u32 }; fn set_pixel(x: u32, y: u32) { local base: heap::*mut u8 = (fb_ptr() + (y * FB_WIDTH + x) * 3) as heap::*mut u8; }" + "memory heap: Memory where { Size = u32 }; fn set_pixel(x: u32, y: u32) { local base: heap::*u8 = (fb_ptr() + (y * FB_WIDTH + x) * 3 + 12345) as heap::*u8; }" ), indoc! {" memory heap: Memory where { Size = u32 }; fn set_pixel(x: u32, y: u32) { - local base: heap::*mut u8 = - (fb_ptr() + (y * FB_WIDTH + x) * 3) as heap::*mut u8; + local base: heap::*u8 = + (fb_ptr() + (y * FB_WIDTH + x) * 3 + 12345) as heap::*u8; } "}, ); @@ -876,12 +876,12 @@ fn test_format_inline_blocks() { // Single-statement if guard: fits → inline. assert_eq!( fmt( - "memory heap: Memory where { Size = u32 }; fn check(data: heap::[]u8) -> bool { if data.len() < 4 { return false }; true }" + "memory heap: Memory where { Size = u32 }; fn check(data: heap::&[u8]) -> bool { if data.len() < 4 { return false }; true }" ), indoc! {" memory heap: Memory where { Size = u32 }; - fn check(data: heap::[]u8) -> bool { + fn check(data: heap::&[u8]) -> bool { if data.len() < 4 { return false }; true } @@ -1005,12 +1005,12 @@ fn test_format_binary_chain_breaks_at_line_limit() { // Long chain: exceeds 80 columns, each operand on its own line. assert_eq!( fmt( - "memory heap: Memory where { Size = u32 }; fn read(data: heap::[]u8, off: u32) -> i32 { (data[off] as i32) | ((data[off + 1] as i32) << 8) | ((data[off + 2] as i32) << 16) | ((data[off + 3] as i32) << 24) }" + "memory heap: Memory where { Size = u32 }; fn read(data: heap::&[u8], off: u32) -> i32 { (data[off] as i32) | ((data[off + 1] as i32) << 8) | ((data[off + 2] as i32) << 16) | ((data[off + 3] as i32) << 24) }" ), indoc! {" memory heap: Memory where { Size = u32 }; - fn read(data: heap::[]u8, off: u32) -> i32 { + fn read(data: heap::&[u8], off: u32) -> i32 { (data[off] as i32) | ((data[off + 1] as i32) << 8) | ((data[off + 2] as i32) << 16) @@ -1312,7 +1312,7 @@ fn test_format_comments_preserved() { #[test] fn test_format_long_type_params_wrap() { let case = TestCase::new(indoc! {" - pub fn memory_copy(dst: DstMem::*mut u8, src: SrcMem::*u8, len: Size) {} + pub fn memory_copy(dst: DstMem::*u8, src: SrcMem::&u8, len: Size) {} "}); let output = format( &case.ast, @@ -1331,7 +1331,7 @@ fn test_format_long_type_params_wrap() { Size: PointerSize, SrcMem: Memory where { Size = Size }, DstMem: Memory where { Size = Size }, - >(dst: DstMem::*mut u8, src: SrcMem::*u8, len: Size) {} + >(dst: DstMem::*u8, src: SrcMem::&u8, len: Size) {} "}, ); } @@ -1339,9 +1339,8 @@ fn test_format_long_type_params_wrap() { #[test] fn test_format_address_of() { let case = TestCase::new(indoc! {r#" - fn f(ptr: *i32, mptr: *mut i32) { + fn f(ptr: &i32) { local a = ptr.*.&; - local b = mptr.*.&mut; } "#}); let output = format( @@ -1357,9 +1356,8 @@ fn test_format_address_of() { assert_eq!( output, indoc! {r#" - fn f(ptr: *i32, mptr: *mut i32) { + fn f(ptr: &i32) { local a = ptr.*.&; - local b = mptr.*.&mut; } "#} ); diff --git a/crates/wx-lsp/src/lib.rs b/crates/wx-lsp/src/lib.rs index aa8a8a7..8992efd 100644 --- a/crates/wx-lsp/src/lib.rs +++ b/crates/wx-lsp/src/lib.rs @@ -33,8 +33,8 @@ use tower_lsp_server::{Client, LanguageServer, LspService}; use wx_compiler::ast; use wx_compiler::ast::TextSpan; use wx_compiler::tir::{ - ImplTarget, ModuleDeclarationKind, SourceSpan, TIR, TypeParamInfo, - TypeParamOwner, + ImplTarget, ItemAttribute, ModuleDeclarationKind, SourceSpan, TIR, + TypeParamInfo, TypeParamOwner, }; use wx_compiler::vfs::{self, FileId, FileSource, NativeFileSource}; @@ -688,6 +688,7 @@ async fn handle_command( let (compiled, file_id) = resolve_uri(state, ¶ms.text_document.uri)?; let files = &compiled.graph.files; + let source = files.source(file_id).ok()?; let mut data: Vec = Vec::new(); let mut prev_line = 0u32; @@ -708,6 +709,30 @@ async fn handle_command( else { continue; }; + // Operator dispatch (`+`, `-`, `+=`, ...) pushes a + // go-to-definition access at the *operator's own span* + // onto the resolved trait method (`resolve_trait_method` + // et al. in tir/builder.rs) — correct for go-to-def, but + // it means these spans land in `references` too, tagged + // with the callee's own `SymbolKind::Function`, which + // would otherwise paint `+`/`-` the same color as a real + // function call. An operator's span is never a valid + // identifier (starts with a symbol character, never a + // letter/underscore), so filtering on that excludes them + // from semantic highlighting without touching how + // go-to-definition/find-references (which read the same + // `references` list) behave. + let span_text = source.get( + entry.source.span.start as usize + ..entry.source.span.end as usize, + ); + if !span_text.is_some_and(|t| { + t.starts_with(|c: char| { + c.is_alphabetic() || c == '_' + }) + }) { + continue; + } let Some(pos) = byte_to_position( files, file_id, @@ -1868,8 +1893,13 @@ fn symbol_hover_text( let pub_prefix = if alias.pub_span.is_some() { "pub " } else { "" }; let mut s = format!("{pub_prefix}type {name}"); push_type_params(&mut s, tir, interner, &alias.type_params); - s.push_str(" = "); - s.push_str(&fmt.display_type(alias.template).ok()?); + // Bodiless `#[intrinsic] type u8;` — `alias.body` holds the + // resolved primitive, not a source-written `= Type` (see the + // doc comment on `TypeAlias::body`). + if !alias.attributes.contains(&ItemAttribute::Intrinsic) { + s.push_str(" = "); + s.push_str(&fmt.display_type(alias.body).ok()?); + } Some(s) } SymbolKind::Const(def_id) => { diff --git a/crates/wx-lsp/src/tests.rs b/crates/wx-lsp/src/tests.rs index 212e338..6c6a0cc 100644 --- a/crates/wx-lsp/src/tests.rs +++ b/crates/wx-lsp/src/tests.rs @@ -53,7 +53,7 @@ async fn hover_after_did_change_observes_latest_edit_through_backend() { language_id: "wx".into(), version: 1, text: - "fn add(a: i32, b: i32) -> i32 { a + b }\nexport { add }\n" + "use std::*;\nfn add(a: i32, b: i32) -> i32 { a + b }\nexport { add }\n" .into(), }, }) @@ -69,7 +69,7 @@ async fn hover_after_did_change_observes_latest_edit_through_backend() { range: None, range_length: None, text: - "fn add(x: i64, y: i64) -> i64 { x + y }\nexport { add }\n" + "use std::*;\nfn add(x: i64, y: i64) -> i64 { x + y }\nexport { add }\n" .into(), }], }) @@ -81,7 +81,7 @@ async fn hover_after_did_change_observes_latest_edit_through_backend() { text_document_position_params: TextDocumentPositionParams { text_document: TextDocumentIdentifier { uri: uri.clone() }, position: Position { - line: 0, + line: 1, character: 4, }, }, @@ -106,6 +106,84 @@ async fn hover_after_did_change_observes_latest_edit_through_backend() { ); } +/// Operator dispatch (`a + b`) resolves to a real trait method (`Add::add`) +/// and pushes a go-to-definition access at the *operator's own span* onto +/// it, the same mechanism an ordinary function reference uses — so without +/// filtering, `+` would show up in semantic tokens tagged with the callee's +/// `SymbolKind::Function`, painting it the same color as a real function +/// call. Asserts the operator gets no semantic token at all, while a real +/// function-name reference on the same line still does. +#[tokio::test] +async fn semantic_tokens_do_not_highlight_operators_as_functions() { + use tower_lsp_server::ls_types::*; + + let (service, socket) = build_service(); + let backend: &Backend = service.inner(); + tokio::spawn(async move { + use futures::stream::StreamExt; + let (mut requests, _responses) = socket.split(); + while requests.next().await.is_some() {} + }); + + let uri: Uri = Uri::from_str("file:///tmp/probe2/main.wx").unwrap(); + // Line 1: "fn add(a: i32, b: i32) -> i32 { a + b }" — `+` is at column 34. + backend + .did_open(DidOpenTextDocumentParams { + text_document: TextDocumentItem { + uri: uri.clone(), + language_id: "wx".into(), + version: 1, + text: + "use std::*;\nfn add(a: i32, b: i32) -> i32 { a + b }\nexport { add }\n" + .into(), + }, + }) + .await; + + let result = backend + .semantic_tokens_full(SemanticTokensParams { + text_document: TextDocumentIdentifier { uri: uri.clone() }, + work_done_progress_params: Default::default(), + partial_result_params: Default::default(), + }) + .await + .expect("semantic_tokens_full should not error") + .expect("expected a semantic tokens result"); + + let SemanticTokensResult::Tokens(tokens) = result else { + panic!("expected a full tokens result, not a delta"); + }; + + // Decode the delta-encoded tokens back to absolute (line, character) + // positions. + let mut line = 0u32; + let mut character = 0u32; + let mut positions = Vec::new(); + for tok in &tokens.data { + if tok.delta_line == 0 { + character += tok.delta_start; + } else { + line += tok.delta_line; + character = tok.delta_start; + } + positions.push((line, character, tok.token_type)); + } + + assert!( + !positions.iter().any(|&(l, c, _)| l == 1 && c == 34), + "operator `+` must not get its own semantic token: {:?}", + positions + ); + assert!( + positions + .iter() + .any(|&(l, _, tt)| l == 1 && tt == TokenType::Function as u32), + "expected `add`'s own declaration on line 1 to still be highlighted \ + as a function: {:?}", + positions + ); +} + /// Resolves the `FileId` for a given file path from a compiled root. fn file_id_for(compiled: &CompiledRoot, path: &Path) -> FileId { compiled @@ -950,7 +1028,7 @@ fn full_diagnostic_renders_and_handles_bad_index() { let root = PathBuf::from("/test/main.wx"); let (_, compiled) = compile_source( &root, - "fn main() {\n local x: i32 = 1;\n}\nexport { main }\n", + "use std::*;\nfn main() {\n local x: i32 = 1;\n}\nexport { main }\n", ); assert!( @@ -1096,6 +1174,8 @@ fn type_alias_used_as_return_type_resolves_to_its_definition() { // tokens) silently did nothing for a name that resolved to a type alias. let root = PathBuf::from("/test/main.wx"); let source = indoc::indoc! {" + use std::*; + type Id = u32; fn test() -> Id { @@ -1663,7 +1743,7 @@ fn memory_declaration_records_accesses_in_type_value_and_export_positions() { // Regression test: `memory` declarations never recorded any access at // all (unlike struct/enum/trait/const), and `wx-lsp`'s `SymbolKind` had // no `Memory` variant to begin with — so hover/go-to-definition on a - // memory name silently did nothing everywhere: as a type (`heap::[]u8`, + // memory name silently did nothing everywhere: as a type (`heap::&[u8]`, // `type M = heap;`), as a value receiver (`heap.size()`), and in an // `export { heap as "..." }` list. let root = PathBuf::from("/test/main.wx"); diff --git a/devlog/2026-08-11-ownership-implementation-strategy.md b/devlog/2026-08-11-ownership-implementation-strategy.md new file mode 100644 index 0000000..a2ab7da --- /dev/null +++ b/devlog/2026-08-11-ownership-implementation-strategy.md @@ -0,0 +1,49 @@ +# 2026-08-11 — Ownership implementation strategy: where to check, move/copy semantics + +## Summary + +Follow-up to [`2026-08-11-ownership-borrowing-allocator-design.md`](2026-08-11-ownership-borrowing-allocator-design.md) (same day, later session). That log settled the *model* (owned `*T` / borrowed `&T`, no `&mut`); this session worked out *where in the pipeline* the checking should live and *what counts as move vs. Copy*. Still design-only, no code changes. + +## Where to run the analysis: TIR, not MIR + +The prior session tentatively assumed MIR-build time, reasoning that control flow needed to already be desugared (labeled `break`/`continue` resolved, etc.). That assumption was wrong and is now corrected: **TIR already has everything that reasoning required.** + +Confirmed by reading `tir/mod.rs` and `mir/mod.rs` directly: + +- **TIR's control flow is already fully desugared to the same tree shape MIR has.** `ExprKind::Block { scope_index, .. }`, `IfElse`, `Loop { scope_index, block }`, `Break { scope_index, value }`, `Continue { scope_index }` — labeled blocks already resolve to `scope_index`, not names, at the TIR level. MIR's equivalent variants are structurally identical. So "needs desugared control flow" is not an argument for MIR at all. +- **TIR already has a `Place`/`PlaceKind` lvalue abstraction** (`tir/mod.rs:519`): `Deref { pointer }`, `Field { object, member }`, `Index { object, index }`, each carrying `ty`, `memory`, `mutable`, `span`. `AddressOf { place, mutable }` (today's `.&`/`.&mut` postfix operators) already operates over this — borrowed-reference creation would plug directly into the existing `AddressOf` mechanism rather than needing a new one. +- **TIR already tracks per-binding use-lists**: `Local { name, ty, mut_span, accesses: Vec }`, where `LocalAccess { span, kind: AccessKind::{Read,Write,ReadWrite} }` is an ordered record of every access to that binding. Move-checking's core need — "enumerate every use of this binding, in order" — is already there for other purposes. +- **TIR's `BlockScope { kind, label, parent, locals, .. }`** has explicit `parent: Option` chains — the scope-nesting stack the borrow-escape check needs is real data already, not something to derive. +- MIR only exists to run *after* monomorphization + inlining. Checking there means checking every monomorphized instance of a generic function separately — duplicated work and duplicated/misattributed diagnostics (would need span-based dedup) for a property that has nothing to do with which concrete type was substituted. + +Net conclusion: ownership/borrow checking is a **TIR-phase, diagnostic-producing pass** — architecturally the same category as today's type checking, not a backend concern. Everything from MIR onward stays pure lowering with no new diagnostics, preserving the existing frontend/backend split (frontend = vfs/ast/tir, backend = mir/opt/codegen). Natural hook point: alongside `ensure_body(def_id)` (Phase 3) or as a pass similar to `check_trait_conformance()` (Phase 3.5), both in `tir/builder.rs`. + +## What's missing at the TIR level + +1. **Ownership tag on `Type::Pointer`/`Slice`/`Array`.** Currently just `memory: TypeIndex` + `mutable: bool`. Needs an `Ownership::{Owned, Borrowed}`-style field, kept distinct from `mutable` rather than conflated with it. +2. **No new fields needed on `Local`/`LocalAccess`.** Move-state should *not* be stored as data — whether a given use is "consuming" is a function of syntactic context (by-value call argument, `Store` source, `return`, etc.), computed by the checking pass as it walks the existing `accesses` list. Keep `Local` as a read-only input to the pass, same way type-checking doesn't mutate the AST. +3. **Scope-of-origin for a `Place`'s root — not actually missing.** A `Place::Deref`'s root is an `Expression`; if it's `ExprKind::Local { scope_index, .. }`, the scope is already right there. Just needs a small helper walking a `Place` down to its root and reading `scope_index` off it. +4. **`Drop` trait / lang-item plumbing — genuinely absent.** No hookup yet for TIR to answer "does type `T` have a `Drop` impl." Would presumably follow the existing `#[lang = "key"]` lang-items map pattern (referenced in `2026-06-16-lang-items-and-codegen-fixes.md`). +5. **Move-vs-Copy classification for aggregates — the real semantic gap.** See below; this is the one piece that isn't just "add a field." + +## Move vs. Copy semantics + +Initial framing floated: "`*T` moves, everything else (stack values) is Copy," with `&T` left as an open question. Refined during this session: + +- **The `*T` → move rule must be transitive through structs, not "stack values are Copy" wholesale.** A struct holding an owned pointer field (e.g. `struct Node { next: *Node, val: i32 }`) must itself become move-only — otherwise copying the struct silently duplicates `next`, giving two owners of the same allocation, exactly the bug the whole system exists to prevent. +- **Unified rule**: a type is **move-only (affine)** iff it (a) *is* an owned pointer/slice/array itself, or (b) transitively contains one as an **inline** (by-value) field, or (c) has an explicit `impl Drop`. Everything else is Copy. Arm (c) is independent of (a)/(b) — a type can need cleanup (an external resource handle, an index into some other table) without embedding a `*T` at all; `impl Drop`'s presence is itself the authoritative signal, matching the original "gated purely on `impl Drop` presence" decision from the prior session. +- **Computing this is cheap**: recurse only through inline-by-value fields, never through indirection (`*T`/`&T` fields stop the recursion — whatever they point to is a separate allocation with its own drop responsibility, irrelevant to the containing struct's own copy-ability). Inline fields can't form cycles (a struct can't contain itself by value), so this is a plain memoized recursive property per `TypeIndex` — no fixpoint iteration needed. +- **`&T` should be Copy** — same reasoning as Rust's shared references: it owns nothing, so unlimited aliasing of a read-only view is always sound. This was the right instinct. +- **Caveat**: Copy-ness only answers the *move-checking* question ("can this binding be used more than once"); it says nothing about the separate *scope-escape* question ("how long is this reference allowed to live"). Every copy of a `&T` still individually has to pass the scope-nesting check — Copy just permits making copies, it doesn't exempt any of them from the check. +- **Consequence for the "move-while-borrowed" problem** (flagged as the hardest interaction in the prior session): since `&T` is Copy, an owned `*T` can have arbitrarily many live borrow-copies outstanding at once, not just one — so the real question is "is *any* copy derived from this borrow still live," not "what's this one binding's last use." The conservative MVP fallback already proposed (freeze the owner for the rest of the lexical block in which it was ever borrowed, regardless of copy count) absorbs this for free since it never tracks individual bindings. Only matters once/if real last-use tracking replaces that fallback later — at that point it'd need per-*place* "any live loan" tracking rather than per-binding last-use. + +## Open questions carried forward + +- Exact hook point in `tir/builder.rs`'s phase sequence (`ensure_body` itself vs. a separate `Phase 3.5`-style pass) — not yet decided; needs reading `ensure_body`/`check_trait_conformance` in detail before committing. +- `Drop` lang-item shape and how it's registered/queried — not designed yet, just noted as needed. +- All open questions from the prior session (allocator-pairing enforcement, arena escape-checking, the `*T` naming-collision migration) remain unresolved and are unaffected by this session's conclusions. + +## Context for future sessions + +- Key TIR types to read first: `Place`/`PlaceKind` (`tir/mod.rs:519`), `ExprKind::{Load,AddressOf,Store}` (`tir/mod.rs:689-702`), `Local`/`LocalAccess`/`AccessKind` (`tir/mod.rs:751-763`), `BlockScope` (`tir/mod.rs:783`). +- `mir::ExprKind::Drop { value }` (`mir/mod.rs:101`, used in `opt/builder.rs:620`) is an **unrelated pre-existing node** — "evaluate expression, discard its value" for statement-position expressions, not the ownership `Drop` trait's destructor call. Don't collide the naming when the real `Drop` mechanism is implemented. diff --git a/devlog/2026-08-16-generic-typeparam-arithmetic-gap.md b/devlog/2026-08-16-generic-typeparam-arithmetic-gap.md new file mode 100644 index 0000000..35dc758 --- /dev/null +++ b/devlog/2026-08-16-generic-typeparam-arithmetic-gap.md @@ -0,0 +1,41 @@ +# 2026-08-16 — Operator support for typeset-bounded assoc types: one gap fixed, one deferred + +## Summary + +While adding a `ptr::align_up` helper to `std/main.wx` (rounds an address up to an alignment — extracted from the hand-rolled `(bump + align - 1) / align * align` / bitmask formula duplicated across `doom/`, `examples/bump_allocator`, `examples/raycaster`, `examples/vec`, and every `examples/wasi_*` allocator), a first attempt bounded the function directly by a typeset: + +```wx +pub fn align_up(addr: Size, align: Size) -> Size { + local mask = align - 1; + local result = (addr + mask) & ^mask; + if result < addr { unreachable } + result +} +``` + +This surfaced two separate, real type-checker gaps around operators on typeset-bounded types. One is fixed as of today; the other is deferred. + +## Gap 1 (deferred): bare typeset-bounded type params don't support operators at all + +`local mask = align - 1;` reported `cannot add `Size` to `Size`` even though both operands are the same type. The arithmetic-binary-expr matching arm only accepted two shapes for an operand: a concrete primitive (`ty.is_primitive()`), or an `AssocTypeProjection` (e.g. `Mem::Size`) whose owning trait declares that associated type with a typeset bound. A bare generic type parameter bounded by a typeset directly (`Size: PointerSize`) is `Type::TypeParam`, not `Type::AssocTypeProjection` — it matches neither shape and falls through to a type error, regardless of which typeset bounds it. Confirmed by elimination: adding more trait bounds to the param (`Size: PointerSize + UnsignedInt`) doesn't help, because the check never inspects a `TypeParam`'s bounds at all — no combination of bounds on a bare type param does anything. + +This is why `Layout::array(count: Mem::Size) -> Self { size: size_of::() * count }` already worked before today: `Mem::Size` is an assoc-type projection off the `Memory` trait (`type Size: PointerSize + UnsignedInt;`), not a bare type param. + +**Not fixed today.** `align_up` shipped bounded by `Mem: Memory` operating on `Mem::Size` instead, matching the convention every other function in the `ptr` module already uses (`add`/`sub`/`add_mut`/`sub_mut` are all ``). Works today with zero compiler changes. The real fix, when picked up, is a third case alongside the primitive/assoc-type-projection ones already handled: for `Type::TypeParam { owner, index }`, check `self.tir.type_param_info(owner, index).bounds.typeset.is_some()` — the same accessor already used elsewhere for typeset-bound lookups on type params (e.g. comptime-literal-range checking). + +## Gap 2 (fixed): unary and bitwise-binary operators never checked the assoc-type-projection case at all + +Shipping the `Mem::Size` version hit two more bugs immediately: + +- `^mask` (unary bitwise-not) on a `Mem::Size` value **crashed the compiler process** — `build_unary_expression`'s `InvertSign | BitNot` arm only checked `operand.ty.is_primitive() || operand.ty.is_comptime_number()`, and its `else` branch was a raw `panic!("can't apply unary operator to this type")` rather than a diagnostic. Any user-writable expression applying `^`/unary `-` to an assoc-type projection (or any other non-primitive type) took the whole compiler down instead of reporting an error. +- `(addr + mask) & ^mask` (binary bitwise-and) between two `Mem::Size` values failed to type-check — `build_bitwise_binary_expr`'s fallback arm gated on `left_type.is_integer() || left_type == TypeIndex::BOOL`, missing the assoc-type-projection case entirely (deliberately narrower than arithmetic's gate, since bitwise ops shouldn't apply to floats/`char` — so it couldn't just reuse the arithmetic check as-is). + +Fixed by extracting the one truly shared piece — "is this an `AssocTypeProjection` bounded by a typeset" — into a single composable primitive, `is_typeset_bounded_assoc_type`, and inlining `ty.is_primitive() || self.is_typeset_bounded_assoc_type(ty)` (arithmetic/comparison/unary) or `ty.is_integer() || ty == TypeIndex::BOOL || self.is_typeset_bounded_assoc_type(ty)` (bitwise) at each of the four call sites, rather than layering named `is_arithmetic_type`/`is_bitwise_type` wrapper functions on top (tried first, deliberately reverted — the wrappers didn't pull their weight over the one real composable check). The unary arm's `panic!` was also replaced with the same `UnaryOperatorCannotBeApplied` diagnostic the sibling `Not` arm already emits, so a genuinely invalid unary application now reports an error instead of aborting the process. + +All four operator-checking sites (`build_unary_expression`, `build_arithmetic_expr`, `build_comparison_binary_expr`, `build_bitwise_binary_expr`) now agree on what counts as an operand-capable type modulo their own category's extra rules (bitwise stays narrower than arithmetic on purpose). + +## Context for future sessions + +- Relevant code: `is_typeset_bounded_assoc_type` (`tir/builder.rs`, next to `build_arithmetic_expr`), the four call sites listed above, `type_param_info` (the accessor Gap 1's fix would reuse). +- The motivating call site: `ptr::align_up` in `std/main.wx` (in the `ptr` module, alongside `add`/`sub`/`null`) — verified end-to-end (both `u32` and `u64` memories, plus an overflow case that correctly traps via `unreachable`) and the full workspace test suite (snapshots regenerated for the `std/main.wx` growth). +- Once Gap 1 is fixed, whether to revisit `align_up`'s signature (back to a bare `` bound) is a separate, low-stakes follow-up — the `Mem::Size` version works fine indefinitely and arguably reads better anyway (ties the alignment arithmetic to the memory it addresses). diff --git a/devlog/2026-08-16-inline-intrinsic-call-graph-bug.md b/devlog/2026-08-16-inline-intrinsic-call-graph-bug.md new file mode 100644 index 0000000..d310941 --- /dev/null +++ b/devlog/2026-08-16-inline-intrinsic-call-graph-bug.md @@ -0,0 +1,56 @@ +# 2026-08-16 — Pre-existing crash: `#[inline]` function calling an intrinsic + +## Summary + +Found while implementing the operator-overloading traits (`Add`/`Sub`/`Mul`/`Div`/`Rem`/`Neg` as pure syntax sugar over trait dispatch, `+=`-style compound assignment desugaring to `place = place.op(rhs)`, no separate `*Assign` traits). The primitive impls (`impl Add for i32 { #[inline] fn add(self, rhs) -> Self { i32_add(self, rhs) } }`, one per numeric type, backed by new `#[intrinsic]` wrappers around the raw wasm instructions) are the first code anywhere in the repo to call an `#[intrinsic]` function directly from inside an `#[inline]`-attributed function's body — and doing so panics the compiler: + +``` +thread 'main' panicked at crates/wx-compiler/src/mir/inlining.rs:702:26: +called `Option::unwrap()` on a `None` value +``` + +**Confirmed pre-existing, unrelated to the new work**: reproduced against a `git stash`-clean checkout (before any of this session's changes) using only `f32_sqrt`, an intrinsic that predates this session entirely: + +```wx +use std::*; +#[inline] +fn wrapper(x: f32) -> f32 { f32_sqrt(x) } +fn my_sqrt(x: f32) -> f32 { wrapper(x) } +export { my_sqrt } +``` + +This alone crashes on unmodified `develop`. It was never triggered before simply because nothing in the existing codebase previously called an intrinsic from inside an `#[inline]` function's body. + +## Root cause + +`mir::MIR::build`'s expression lowering (`lower_expression` in `mir/mod.rs`) has four places that resolve a call target and decide whether to call `record_call_edge` (which feeds `mir.call_edges` → `CallGraph::build`'s `callees`/`callers` maps, consumed by `run_inlining_pass`'s Kahn-topological-sort inlining loop in `mir/inlining.rs`): + +1. `tir::ExprKind::GenericCall` — checks `ItemAttribute::Intrinsic`, short-circuits to `lower_intrinsic` before ever reaching `record_call_edge`. Correct. +2. The "abstract trait method resolved inside a default body" arm — dispatches to the concrete impl, records an edge. Never targets an intrinsic in practice. +3. `tir::ExprKind::Call` — checks `Intrinsic`, short-circuits correctly for the intrinsic case, but **the plain non-intrinsic case never called `record_call_edge` at all** — a second, independent latent bug (ordinary non-method, non-generic calls to a `#[inline]` function would silently never actually get inlined, since no edge means the Kahn queue never learns who its callers are). +4. `tir::ExprKind::Function { id }` — resolves a bare function-value reference. This runs on the way to *every* call (lowering the `callee` sub-expression happens before the enclosing `Call`/`GenericCall` arm gets to check whether the target is an intrinsic), and **unconditionally called `record_call_edge` with no intrinsic check at all**, in both its generic/mono branch and its plain branch. This is the actual crash source. + +Intrinsics are eliminated entirely during lowering — `lower_intrinsic` substitutes the whole call expression for the real MIR op (`ExprKind::Add`, `ExprKind::Trunc`, `ExprKind::MemoryGrow`, ...) directly at the call site. They never become a real `mir::Function`, by construction (they're bodiless declarations — `#[intrinsic] pub fn f32_trunc(value: f32) -> f32;` has no `{}`). `CallGraph::build` only pre-seeds `callees`/`callers` map entries for ids present in `mir.functions`, and silently no-ops (`if let Some(...)`) when an edge references a callee that never got a functions-map entry — so a spurious `caller → some_intrinsic` edge is normally harmless dead data. It only becomes fatal when the *caller* is itself `#[inline]`: the Kahn-queue loop iterates that caller's callee set unconditionally and does a bare `.unwrap()` on `graph.callers.get_mut(&callee_id)`, assuming every recorded callee has a real graph entry. + +## Fix + +Two-part, both in `mir/mod.rs`: + +- Arm 3 (`tir::ExprKind::Call`, non-intrinsic branch): added the missing `self.record_call_edge(id);` — needed regardless, or `#[inline]` on an ordinary function called this way silently does nothing. +- Arm 4 (`tir::ExprKind::Function { id }`, both branches): added a new `is_intrinsic(&self, id: ast::DefId) -> bool` helper (checks `ItemAttribute::Intrinsic` on the resolved `tir::Function`) and guarded both `record_call_edge` calls behind `!self.is_intrinsic(...)`, matching what arms 1–2 already did. + +Verified against all three repro cases (`f32_sqrt` wrapped in `#[inline]`, `f32_trunc` wrapped in `#[inline]`, and the real `impl Add for i32` calling `i32_add`) — all now compile and fully collapse through inlining to the bare wasm instruction (`i32.add`, `f32.sqrt`, `f32.trunc`), zero leftover call overhead. + +## Alternative considered and rejected: make intrinsics real `#[inline]` `mir::Function`s + +Instead of eager substitution during lowering, intrinsics could be materialized as ordinary `#[inline]` functions and go through the same call-graph/Kahn-inlining machinery as everything else, removing the need for arms 1–4 to special-case them individually. Rejected: + +- **No performance win.** Both approaches produce identical final wasm. Eager substitution is already *stronger* than `#[inline]` — guaranteed 100% elimination during the first lowering pass, before any graph/cycle logic runs. `#[inline]` here only means "eligible for the Kahn-queue pass," which can lose a function to the mutual-recursion cycle-breaker's "evict one anchor" step (see `run_inlining_pass`'s outer loop) — an intrinsic evicted that way would survive as a literal `Call` node into codegen with no real function behind it. The current design makes that structurally impossible; the alternative would have to explicitly rule it out. +- **Real new machinery, not a deletion.** Several intrinsics are generic (`memory_grow`, `slice_len`, `size_of`) and today get specialized per call site for free using whatever `current_substitutions` are already live in the calling context. Turning them into standalone functions means giving them their own `mono_registry`-style monomorphization identity — genuinely new code, not a simplification. +- Net: bigger diff, new correctness surface, no upside. Kept the narrow fix. + +## Context for future sessions + +- Relevant code: the four call-dispatch arms in `lower_expression` (`mir/mod.rs`, search `record_call_edge`), `is_intrinsic` (new, next to `record_call_edge`), `CallGraph::build`'s silent `if let Some(...)` drop (`mir/inlining.rs`), the Kahn-queue loop's `f_callees` iteration and cycle-breaker (`mir/inlining.rs`, `run_inlining_pass`). +- Motivating call site: `std/main.wx`'s new primitive `Add`/`Sub`/`Mul`/`Div`/`Rem`/`Neg` impls (one per numeric type, all `#[inline]`, all calling a raw `#[intrinsic]` wrapper directly) — part of the still-in-progress operator-overloading feature (traits as pure sugar, no `*Assign` traits, `+=` desugars to `place = place.add(rhs)` reusing the existing place-based compound-assignment machinery). +- If arm 2 (abstract trait method dispatch) is ever changed to allow resolving to an intrinsic, it needs the same `is_intrinsic` guard — not an issue today since trait default-body dispatch never targets one, but worth remembering if that assumption changes. diff --git a/devlog/2026-08-16-pointer-reference-split-design.md b/devlog/2026-08-16-pointer-reference-split-design.md new file mode 100644 index 0000000..a53f795 --- /dev/null +++ b/devlog/2026-08-16-pointer-reference-split-design.md @@ -0,0 +1,99 @@ +# 2026-08-16 — Pointer/reference split design (exclusive vs. shared) + +## Summary + +Design-only discussion (no code changes) on replacing the current `mutable: bool` flag on `Type::Pointer`/`Slice`/`Array` with a two-kind split — `*T` = exclusive pointer, `&T` = shared read-only reference — and moving slice/array syntax to Rust-style `&[T]`/`*[T]`, `&[T; N]`/`*[T; N]`. Deliberately narrower than the 2026-08-11 ownership design: **no move-checking, no `Drop`, no lifetime/escape checking, no allocator identity**. The property "only one exclusive pointer exists at a time" is a naming/convention, not a compiler-enforced guarantee, in this pass. Landed on a concrete AST/TIR shape, resolved the sized/unsized-array exposure question, worked out address-of down to one real trade-off case, and surfaced a much bigger adjacent feature (`variant`/tagged unions) that this design leans on but explicitly defers. + +## Current state (as of this session) + +- `Type::Pointer { to, memory, mutable: bool }`, `Type::Slice { of, memory, mutable: bool }`, `Type::Array { of, size, memory, mutable: bool }` (`tir/mod.rs:148-163`) — same shape, same field, replicated three times. +- AST mirrors this: `TypeExpression::Pointer/Slice/Array` (`ast/mod.rs:1319-1377`) all carry `mutability: Option` (a span marking presence of trailing `mut`, not a bool). Parsed via `Token::Star` (`*T`/`*mut T`) and `Token::LBracket` (`[]T`/`[]mut T`, `[N]T`/`[N]mut T`) as two independent dispatch arms in `parse_type_expression`, each with its own `parse_mut_span()` call. +- `coercible_to` (`builder.rs:1711-1770`) implements the same one-way "drop write permission" coercion three times: `*mut T → *T`, `[]mut T → []T`, `[N]mut T → [N]T`. +- Impl blocks already exist for `Slice`/`Array` (structurally, erasing element type *and* mutability — one `impl []T` covers every slice) but are explicitly excluded for `Pointer` (`ImplTarget::from_type`, `resolve_method_call` unwraps `Pointer::to` before impl lookup). `std/main.wx`'s `impl Mem::[]T { fn len(...); fn ptr(...); }` (main.wx:311-321) is the only place slices get methods, and it's ordinary user-space code. +- **Arrays and slices already never live as bare stack/inline values** — both always carry a `memory: TypeIndex` tag, and MIR lowers `Type::Array` straight to `mir::Type::Pointer` (dropping the `u32` size from the MIR type entirely) and `Type::Slice` to a fixed `{ptr, len}` aggregate. No array→slice decay exists. Zero `.wx` files anywhere in the repo declare an explicit `[N]T` array-type annotation today (only inferred array literals). +- Mutability is **not represented in MIR at all** — by the time TIR→MIR lowering runs, all write-permission checks are already done; MIR only tracks `MemoryKind` (32/64-bit) per pointer. Confirms this change is TIR-local; MIR/codegen are insulated. +- Address-of/deref are postfix, method-call-style: `expr.&` / `expr.&mut` (`Expression::AddressOf`, `ast/mod.rs:1080`) and `expr.*` (`Expression::Deref`, `ast/mod.rs:1076`). +- `are_scalar_compatible`/`type_scalar` (`tir/builder.rs:11873-11961`, gates `as` casts) check `memory` equality for Pointer/Slice/Array casts but **do not check the mutable flag** — a pre-existing gap (CLAUDE.md's "cast checking is looser than it looks" pitfall) that becomes load-bearing under this design: left as-is, `shared_ref as *T` would silently defeat "a `&T` is always read-only." +- Real-code usage (repo-wide grep, `.wx` files only): 123 `*mut` sites, 10 `[]mut` sites, 0 explicit `[N]mut`/`[N]T` sites — concentrated in `std/main.wx`'s `ptr` module/`Allocator`/`Memory` traits and the WASI-facing examples (`wasi_preview1_port`, `doom/*`). Test-snapshot surface: ~240 matching lines across `tir/tests.rs`/`codegen/tests.rs`/`mir/tests.rs`, all `.snap` files needing `cargo insta accept` regeneration. `wx-fmt` has 17 dedicated match arms that must move in lockstep with the parser. + +## Proposed model + +| Current | Proposed | Notes | +|---|---|---| +| `*T` = immutable pointer | `&T` = shared reference, always read-only | coercion target — old `*T` was already write-incapable, so this rename is sound by construction at every existing call site | +| `*mut T` = mutable pointer | `*T` = exclusive pointer | | +| `[]T` = immutable slice | `&[T]` = shared slice | | +| `[]mut T` = mutable slice | `*[T]` = exclusive slice (can also mean "owned," informally — see below) | | +| `[N]T` = immutable array | `&[T; N]` = shared fixed array | | +| `[N]mut T` = mutable array | `*[T; N]` = exclusive fixed array | | + +- **AST/TIR shape stays flat**, matching today's three-sibling-variant design — `Pointer`/`Slice`/`Array` remain distinct variants, just with `mutable: bool` replaced by an `Ownership::Exclusive | Shared` kind: + ```rust + Pointer { kind: Ownership, inner } + Slice { kind: Ownership, inner } + Array { kind: Ownership, size, inner } + ``` + This resolves the "should `[T]`/`[T; N]` be exposed as standalone types" question by construction: there is no grammar production for a bare `[T]`/`[T; N]` — a `Slice`/`Array` node can't exist without an `Ownership` kind attached, same as today. No DST machinery, no by-value sized-array semantics, no new stack-allocation story. Parser-side this means restructuring dispatch so `&`/`*` is consumed *first*, then the target (bare type → `Pointer`, `[...]` → `Slice`/`Array`) is parsed — bigger than a pure rename, but still fully mechanical. +- **`*[T]` "owning" a slice costs nothing extra.** There's no move-checking to distinguish "exclusive access to an existing slice" from "freshly allocated slice" anyway — `*[T]` already covers both today (as `[]mut T` does), so this is stated behavior, not new work. +- **Coercion direction**: `*T -coerces-> &T`, one-way, same as today's three `coercible_to` cases with the boolean flipped. Migration is mechanically safe in this exact direction: every existing bare `*T` site was already read-only, so `*T → &T` and `*mut T → *T` are both sound blanket renames. The non-mechanical part is `[]T`/`[N]T` → `&[T]`/`&[T; N]` (element and size *reorder* around the brackets) — real but narrow, since zero sites use explicit `[N]T` today and only 58 slice sites total need the reorder. +- **Required, in-scope fix**: close the `as`-cast gap above — casts between `Pointer`/`Slice`/`Array` kinds must respect the same one-way direction as implicit coercion (never `&T as *T`), or the "shared is always safe to alias" property is cosmetic only. +- **Deferred, not in this pass**: `&[T; N] → &[T]` array-to-slice decay. Nothing in the codebase depends on it (zero explicit array-type usage today); adding it is new coercion logic beyond a mechanical rename. + +## Address-of/deref: kept postfix, collapsed to one form + +There is no `&mut` in this model at all. Exclusive pointers are only ever obtained by move through control flow (conceptually — not enforced this pass), never by borrowing an existing place. **Decision: keep the existing postfix syntax as-is** (`expr.&`, `expr.*`) rather than moving to prefix `&expr`/`*expr` — smaller diff, and the sigil position was never actually in tension with anything else discussed. The only real change is that `.&mut` disappears: address-of collapses to the single existing `.&` form, which always produces `&T`. `.*` (deref) is unchanged and continues to work through both `*T` and `&T` uniformly. + +Grepping every `.wx` file for `.&mut` found exactly **one real (non-commented) call site** in the whole repo relying on the old "take a mutable pointer to a place" operator — everything else (`doom/main.wx`, `doom/m.wx`) was scratch syntax notes in a comment block: + +```wx +// examples/wasi_preview1_port/main.wx:349-350 +fn subscription_u_as_fd_readwrite(u: *mut SubscriptionU) -> *mut SubscriptionFdReadwrite { + (u.*.clock.&mut) as _ +} +``` + +This simulates a witx `union` (documented as limitation #2 in the file's own header, main.wx:18-27: wx `enum` has no payload, so the workaround is tag + largest-variant struct, reinterpreting the payload field's address as each smaller variant's type). Verified against the call site (line 677, `subscription_u_as_fd_readwrite(scratch).*.file_descriptor`) that this genuinely needs **aliasing** — the returned pointer must point at the same bytes as `scratch`'s `clock` field, not a copy, since the whole struct later goes to a WASI host expecting the union bytes at one fixed address. "Allocate a fresh pointer and return that instead" was considered and rejected for this reason. + +Resolution: this was never actually in tension with dropping `.&mut` in the first place. `u: *SubscriptionU` is already the sole exclusive pointer (a parameter, not derived from an untracked place) — computing a sub-address *within memory already exclusively held* and reinterpreting its type isn't creating a second independently-tracked exclusive pointer, it's arithmetic on one you already have. + +Two escape-hatch designs were tried and rejected before landing on the final one: + +- **A `.&`-on-an-exclusive-place elaborates to `*T` via expected-type context** (single operator, no `.&mut`, but context-sensitive). Rejected on future-compatibility grounds: this is exactly Rust's **reborrow**, and reborrowing is the specific problem the owned/borrowed (no `&mut`) ownership model from 2026-08-11 was designed to avoid needing. If `u.*.clock.&` can produce a fresh `*T` while `u` itself is still an independently-owned `*T`, a future move-checker sees two values it thinks are independently responsible for cleanup over overlapping memory — either both get double-drop-checked (unsound), or the checker needs real region/lifetime reasoning to know the derived pointer's validity is tied to `u`'s and `u` is frozen meanwhile (Rust's actual `&mut` reborrow machinery — the hard problem `&T`-is-always-shared was specifically meant to sidestep). Reopening it one level down for `*T` undoes that. +- **A dedicated `offset_of::("field")` intrinsic**, string-argument-based. Rejected for being stringly-typed (no compile-time field-existence guarantee tied to identifier syntax, no LSP go-to-def, typo-prone) — and, once the alternative below was found, unnecessary. + +**Final resolution: `.&` never produces anything but `&T` — no exceptions, ever.** This is fully forward-compatible by construction, since a `&T` never enters ownership tracking at all under the 2026-08-11 model (unlimited simultaneous `&T`s are always sound). The key realization: `subscription_u_as_fd_readwrite` never actually needed a *pointer* out of the field-address computation — only the field's address *as an integer*, to compute a byte offset. Converting any pointer or reference to its raw numeric address is ownership-neutral (grants no write access, claims no exclusivity) regardless of which kind produced it — the same way Rust allows `&T as *const T as usize` freely in safe code. So a classic C `offsetof`-via-null-pointer computation, built entirely from existing pieces (`.&`, `.*`, `as` casts, the existing `ptr::null_mut` intrinsic, `std/main.wx:276`), solves it with zero new grammar and zero new intrinsics: + +```wx +fn subscription_u_as_fd_readwrite(u: *SubscriptionU) -> *SubscriptionFdReadwrite { + local base: *SubscriptionU = ptr::null_mut::(); + local offset = (base.*.clock.& as WasiMem::Size) - (base as WasiMem::Size); + (u as WasiMem::Size + offset) as *SubscriptionFdReadwrite +} +``` + +`base` is never actually dereferenced for a real load — field-address-of behind a pointer already lowers to pure offset arithmetic in MIR (`lower_place_address`, no `AggregateGet` involved), so a null base is safe here exactly as in C's `&((T*)0)->field` idiom. `base.*.clock.&` yields `&SubscriptionClock` (never `*SubscriptionClock` — no exception needed, since only its address-as-integer is used). The actual "produce an exclusive pointer into memory I already exclusively hold" step happens at the final `as *SubscriptionFdReadwrite` cast on `u`'s own address, which is legitimate because `u` was already exclusive. No reusable generic `offset_of` utility is needed this pass either — there's exactly one real call site, so it's solved inline rather than adding a stdlib primitive for a need that doesn't yet generalize. Net effect: address-of/deref grammar gets *smaller* than today (`.&`/`.&mut`/`.*` → `.&`/`.*`), and nothing new is added to the language to make this work. + +One item worth a one-line flag for the *future* ownership design session, not a blocker now: does a scratch `null_mut()` placeholder need `Drop` bookkeeping once move-checking lands? Almost certainly not (null represents no allocation, nothing to free) — but worth confirming when that session happens. + +## Bigger finding: the real fix for the union-simulation problem is a new item, not a workaround + +Pushing on "why does this need pointer tricks at all" surfaced that the actual root cause is wx `enum` having no payload — confirmed by re-reading the `wasi_preview1_port` header comment, which already names this as an unsolved limitation. Two designs were compared: + +- **Keep `enum` exactly as-is.** User was explicit: don't touch it. Fixed repr, required explicit `= N` value per constant, no payload — this is deliberately kept because WASI-style ABI-exact numeric enums depend on exact user-chosen discriminant values. +- **Add a new, separate item: `variant`** (name borrowed from WIT). Cases may carry an optional payload type; unlike `enum`, the compiler chooses the tag encoding — the user gets no say over the numeric value, which is the intended trade-off for gaining payload data per case. This is a real, separate feature: `match`/`enum` today (`tir/mod.rs`'s own `Pattern` doc comment: "no bindings, no or-patterns, no guards") is a pure C-style switch over an integer discriminant, and the existing `Pattern` AST type used for `local = expr` destructuring is completely disconnected from `match` — never touched by it. Concretely, `variant` + real destructuring would need: new case syntax in item parsing, a TIR payload representation (reusing `Struct`/`StructField`-style layout per case, since `Enum`/`Struct` are fully disjoint today), and a genuinely new per-arm payload-extraction step in MIR/codegen (today `Expression::Match` lowers straight to a flat `Switch`/`br_table`, with nothing that extracts data — confirmed via `mir/mod.rs:2377-2420` and `codegen/mod.rs:915-928`). Comparable in size to, arguably larger than, the whole pointer/reference change in this document. + +**Decision: deferred.** Not designed further this session. The null-pointer offset trick above stands as the pointer/reference pass's answer to the one real call site that needs it; `variant` is recorded here as the actual intended fix, motivated by a concrete existing pain point (`wasi_preview1_port`'s `SubscriptionU` hand-rolled union simulation, which `variant` would let get deleted entirely), for its own future design session. + +## Open questions + +- `variant` item design entirely open: case syntax, TIR payload layout reusing `Struct`, match-arm destructuring/binding syntax (the dormant `Pattern::Binding`/`Tuple`/`Struct` variants from `local`-destructuring are the natural reuse target), exhaustiveness rules once arms can bind sub-values. +- Whether a generic, reusable offset-computation helper (built the same way, from `.&`/`null_mut`/casts — no new intrinsic) is ever worth adding to `std/main.wx`, or whether `wasi_preview1_port` stays the only consumer until it's rewritten to use real tagged unions. +- Does a `null_mut()`-derived placeholder pointer need `Drop` bookkeeping once real move-checking lands? (Expected answer: no — flagged for the future ownership session to confirm.) +- Array-to-slice decay (`&[T; N] → &[T]`) — explicitly deferred, not designed. + +## Context for future sessions + +- Relevant existing code to read first: `Type::Pointer`/`Slice`/`Array` (`tir/mod.rs:148-163`), `TypeExpression::Pointer`/`Slice`/`Array`/`MemoryTagged` (`ast/mod.rs:1319-1377`), `coercible_to`'s three mut-drop cases (`tir/builder.rs:1711-1770`), `ImplTarget::from_type` and `resolve_method_call`'s pointer-unwrap (`tir/builder.rs`, ~15005-15109), `are_scalar_compatible`/`type_scalar` (`tir/builder.rs:11873-11961`). +- For the deferred `variant` work: `Expression::Match`/`MatchArm` (`ast/mod.rs:1109`, `1205-1225`), TIR `Pattern` (`tir/mod.rs:893-912`, note its own "v1" doc comment), `build_match_expression`/`build_pattern`/`check_match_exhaustiveness` (`tir/builder.rs:11523-11769+`), MIR `Switch` lowering (`mir/mod.rs:2377-2420`), `codegen/mod.rs:915-928` (`BrTable`), and the dormant `Pattern::Binding`/`Tuple`/`Struct` destructuring grammar (`ast/mod.rs:1389-1413`, currently only reachable from `local = expr`). +- The one real motivating call site for both the null-pointer-offset stopgap and the eventual `variant` fix: `examples/wasi_preview1_port/main.wx:337-357` (`SubscriptionU`/`subscription_u_as_fd_readwrite`) and its use at line 677. +- No prototype code, grammar changes, or TIR changes exist yet for any of this — whiteboard stage only. diff --git a/devlog/2026-08-16-primitives-as-items-and-use-scoping.md b/devlog/2026-08-16-primitives-as-items-and-use-scoping.md new file mode 100644 index 0000000..fae15f5 --- /dev/null +++ b/devlog/2026-08-16-primitives-as-items-and-use-scoping.md @@ -0,0 +1,46 @@ +# 2026-08-16 — Primitives as intrinsic type-alias items; `use` wildcard-import scoping bug found + +## Summary + +Turned primitive types (`i8`..`f64`, `bool`, `char`, `never`) from a hardcoded string match in the type resolver into real `#[intrinsic] pub type X;` items declared in `std/main.wx`, giving them a `DefId` and making LSP go-to-definition/hover/find-references work on them. Fixing the resulting hover regression (bodiless aliases rendering as `pub type u8 = u8`) led to auditing whether primitives should be visible without an explicit `use std::*;`, which surfaced a pre-existing bug: a root-level `use X::*;` in wx is currently crate-wide, not per-file, unlike Rust. Implementing that fix properly was scoped out as its own task; today's change stays scoped to the 3 wx-lsp tests that needed an explicit `use std::*;` added. + +## Changes + +### Primitives as `#[intrinsic] type` items + +- `ast/mod.rs`: `Item::TypeAlias.ty: Box>` → `body: Option>>`. `parse_type_alias_item` now accepts a bodiless `type Name;` form (no `= TypeExpr`). +- `tir/mod.rs`: `TypeAlias` gained an `attributes: Box<[ItemAttribute]>` field. New `MissingTypeAliasBody` (`E1070`) diagnostic, worded like rustc's "free type alias without body" message (with a `help:` secondary label). +- `tir/builder.rs`: `ensure_signature`'s `TypeAlias` arm branches on body presence — with a body, resolves normally; without one, binds to the matching primitive `TypeIndex` if `#[intrinsic]` is set (trusting the origin, same policy as intrinsic functions — no validation that the name is a real primitive or that intrinsic+body aren't combined, since only the stdlib we control uses the attribute today), else reports `MissingTypeAliasBody`. Deleted the old unconditional `Type::try_from(&str)` shortcut in `resolve_type_identifier` — this was the actual source-of-truth removal that made real items matter. +- `std/main.wx`: added `#[intrinsic] pub type X;` for all 13 names the old shortcut handled (`i8, u8, i16, u16, i32, u32, i64, u64, f32, f64, bool, char, never` — not just the 10 numeric ones originally proposed; `bool`/`char`/`never` would have silently become unresolvable otherwise). +- `wx-fmt/src/lib.rs`: `build_type_alias_definition` now prints attributes and omits `= ` when there's no body. + +### Hover fix + `TypeAlias::body` doc comment + +`wx-lsp`'s hover for a type alias unconditionally appended `" = " + display_type(alias.body)`. Since `body: TypeIndex` (not `Option`) is always populated post-resolution — even for bodiless intrinsics, where it just holds the resolved primitive — this rendered `#[intrinsic] pub type u8;` as `pub type u8 = u8`. Fixed by checking `alias.attributes.contains(&ItemAttribute::Intrinsic)` before appending the `= Type` part. Considered adding a separate `has_body: bool` field instead of overloading the `Intrinsic` check, but landed on keeping `body: TypeIndex` non-optional (real consumers — name resolution, `substitute_type` during monomorphization — never see it absent) and documenting *why* directly on the field rather than adding new state. + +### Unrelated `wx-fmt` bug found and fixed + +`build_impl_item`'s `ast::ImplItem::Constant` arm never read `pub_span`/`attributes` at all — every `impl Foo { pub const X = ...; }` silently lost its `pub` (and any attribute) on format. This had already round-tripped through the real `std/main.wx` (the `impl f32 { pub const PI }` / `impl f64 { pub const PI }` blocks lost their `pub`), which broke ~100 compiler tests (`case.tir.diagnostics.is_empty()`) with a spurious "const `PI` is never used" warning once `PI` was no longer reachable from anywhere. Fixed the formatter and restored `pub` on both `PI` consts. + +## Key findings + +- **`std/main.wx` items are not implicitly visible anywhere — `use std::*;` is required, and every compiler test auto-prefixes it.** `TestCase::new`/`new_multi_file` in `tir/tests.rs` silently prepend `"use std::*;\n"` to the entry source. This is why removing the primitive shortcut broke plain `wx-cli check` on a file as simple as `fn test() -> u32 { 0 }` (`error[E1021]: undeclared type`) despite the compiler's own test suite staying green — the tests were never actually exercising the "no import" path primitives used to get for free via the old shortcut. + +- **A root-level `use X::*;` in wx is crate-wide, not per-file — confirmed empirically, not just by reading the code.** Wrote a throwaway `TestCase::new_multi_file` probe: entry file has `use std::*;` at its root; a completely separate `module child;` file (`src/child.wx`) writes *no* `use` at all and bare-references `u32`. It resolved with zero diagnostics. Root cause: `use X::*;` written at `namespace: None` (the crate-root scope) is recorded into `Builder::root_wildcard_imports: Vec` — a single flat list — and `lookup_global_symbol` consults that list unconditionally for *every* lookup, once its own ancestor chain is exhausted, regardless of which file/namespace the lookup started in. There is no per-file scoping at all for a root-level `use`. + +- **The same bug isn't limited to the crate-root case — it's structural.** `lookup_global_symbol`'s single ancestor-walk loop checks each namespace's own `wildcard_imports` *while walking up to parents* — the same walk that implements privacy's "visible to declaring namespace and every descendant namespace." So `use Foo::*;` written inside `module A { use Foo::*; module B { ... } }` already leaks into `B` too, today, independent of anything from this session. Privacy-ancestry and import-lookup are two different concerns (Rust: privacy is visible-to-descendants, `use` is never inherited by any descendant) that share one mechanism in wx's current implementation. + +- **Duplicate inherent-impl members are only caught at first use, not at the second declaration — and not at all if the duplicate is never referenced.** `impl f32 { const PI = ...; }` twice (once in `std/main.wx`, once in user code) produces no diagnostic until something actually references `f32::PI`, at which point `resolve_inherent_member` reports it as an "ambiguous"-shaped `E1000` at the *use* site rather than at the second `impl` block. Root cause: `inherent_impl_dispatch` is keyed by `(ImplTarget, member_name)`, and `ImplTarget` is coarser than a full concrete type (no type args) — so the same bucket can legitimately hold multiple *non-conflicting* blocks for a generic target (`impl Box { fn get }` and `impl Box { fn get }` both providing `get`, per the existing "within-block duplicate check" comment at `builder.rs:5333`). Telling a real conflict apart from that requires unifying against a concrete type, which isn't available yet for a generic block at registration time — so the check was deferred wholesale to `resolve_inherent_member`, generic and non-generic blocks alike. For a *non-generic* target like `f32` there's no such ambiguity (only one possible instantiation), so this is fixable without full overlap/coherence checking — analogous to `register_trait_impl` (`builder.rs:14520`), which already reports duplicate **trait** impls eagerly, though it can do that unconditionally because trait impls use a stricter one-per-type-constructor policy that inherent impls deliberately don't. Not fixed today — noted as its own task, same treatment as the `use`-scoping issue above. + +## Decisions + +- **Did not implement "std auto-imported everywhere" today.** The natural implementation (push `std`'s crate namespace into `root_wildcard_imports` unconditionally at graph-build time in `tir::builder::build`) would work and would cover multi-file projects correctly (nested `module foo::bar;` namespaces chain their `parent` back to `None` via `ensure_module_path`, so the fallback still fires no matter the nesting depth) — but it would be built on top of the crate-wide `use` bug above rather than correct per-file semantics. +- **Did not fix the `use` per-file scoping bug today either.** Doing it properly means splitting `lookup_global_symbol`'s combined ancestor-walk into two separate mechanisms — one for privacy-ancestry (keep as-is), one for import-lookup (should check only the exact namespace a reference occurs in, no walking up to parents). That's a change to the core resolution path shared by every type *and* value lookup in the compiler, and no existing test (single-file or multi-file) currently pins down the "correct" nested-module `use` behavior either way — real regression surface with no safety net. Scoped out as its own task. +- **Fixed the 3 wx-lsp tests that broke** (`hover_after_did_change_observes_latest_edit_through_backend`, `type_alias_used_as_return_type_resolves_to_its_definition`, `full_diagnostic_renders_and_handles_bad_index`) by adding `use std::*;` to their sources instead, matching what `TestCase` already does. Checked first whether this was a large blast radius (7 of ~38 `.wx` source strings in `wx-lsp/src/tests.rs` already had `use std`) — only 3 tests actually asserted on something resolution-sensitive enough to fail. + +## Open questions + +- Should duplicate inherent-impl members for a *non-generic* target (primitives, non-generic structs) be reported eagerly at the second declaration, reusing `unify_inherent_impl_target` the same way `resolve_inherent_member` already does at use-time but probed against the new block's own concrete type instead of a use site's? That fix wouldn't touch the deliberately-deferred generic case (`impl Box`/`impl Box` both providing `get`), which would still need real overlap/coherence checking to catch eagerly, if that's ever wanted. +- Should wx's `use` be strictly per-file/per-module (Rust-like — never inherited by any descendant, nested or crate-root), or is crate-wide-from-the-root actually intended? No test currently pins this down either way. Worth deciding explicitly before building anything else (like std-by-default) on top of `root_wildcard_imports`. +- Once `use` scoping is decided/fixed, revisit "std implicitly imported everywhere" — the mechanical piece (push std's namespace into whatever the corrected global-fallback list becomes) is small; it was only blocked on the semantics underneath being right first. +- `examples/*.wx` are stale — `examples/bump_allocator/bump_allocator.wx` doesn't even parse (`@size_of`/`@align_of` sigil syntax that no longer exists). Not exercised by CI/tests; worth a pass at some point independent of this. diff --git a/devlog/2026-08-17-chained-inlining-offset-collision-fix.md b/devlog/2026-08-17-chained-inlining-offset-collision-fix.md new file mode 100644 index 0000000..3925e17 --- /dev/null +++ b/devlog/2026-08-17-chained-inlining-offset-collision-fix.md @@ -0,0 +1,178 @@ +# 2026-08-17 — Chained-inlining flat-offset collision: fixed + +Follow-on to +[2026-08-17-chained-inlining-offset-collision-investigation.md](2026-08-17-chained-inlining-offset-collision-investigation.md), +which root-caused the bug and designed (but didn't implement) two fix +candidates. Landed a fix today — a *different, simpler* design than either +candidate in that entry, arrived at by pushing on "why does this need a new +scope at all" rather than "how do we protect a new scope from colliding." +`codegen::tests::test_lerp` passes again. Full suite: 732 passed / 0 failed. + +## Recap of the bug + +`opt::builder::compute_locals_offsets` lets same-`parent` scopes share a +flat local-offset range, on the assumption they're mutually exclusive at +runtime — true for `if`/`else`/`match` arms, the only shape ordinary +lowering ever produces. `mir::inlining::inline_call` broke that: for every +inlined `#[inline]` call it created a *new* sibling scope (a `wrapper` +holding nothing, plus a `body_scope_offset` holding the callee's +parameters), parented at the call site. Two calls inlined at or under the +same site — sibling arguments of one expression, or two separate, +independent sweeps substituting one after another — got two such sibling +scopes, which collided: one call's `LocalSet` into its param slot silently +overwrote the other's still-needed value. Confirmed via wasmtime +(`test_lerp`'s `a + (b-a)*t` and a hand-built `calc(a,b,c,d){(a+b)+(c+d)}` +both computed wrong results). + +## Two candidates considered and rejected before landing on the real fix + +**Candidate A — chain the new wrapper's `parent` onto whichever of (the true +call site) or (the most recently created scope anywhere in the function) has +already reserved more space**, compared via a `scope_offset`/`scope_end` +helper mirroring `compute_locals_offsets`'s own arithmetic. Implemented +first, verified correct (731/731, including `test_lerp`) — but the user +pushed back: it's "unnecessarily complex," comparing occupied ranges to work +around a problem that shouldn't exist if the construction were honest in the +first place. In retrospect the comparison-based approach was still a proxy +for "is anything else here" rather than a structural guarantee — correct, +but not the most direct statement of the actual requirement. + +**Candidate B (first attempt) — skip creating any new scope when the callee +has no state of its own** (no extra locals beyond its params, no nested +scopes, no `return`), falling back to something like Candidate A otherwise. +Required a `contains_return` tree walk and a whole second rebaser +(`RootRebaser`) just for the "skip" path. Also rejected — the user was +explicit that the wrapper scope should stay unconditional (`return` is +already handled for free by the existing `Return`→`Break` rewrite, +regardless of whether a `return` is actually present), and that a +conditional "sometimes skip" branch was exactly the kind of complexity not +wanted. + +## The actual fix: don't create a new scope for the callee's own locals + +The root question, once separated from "how do we protect a new scope": *why +does inlining need a new scope to hold the callee's parameters at all?* An +`if`/`else` branch needs its own scope because it's a genuine alternative — +a callee's parameters aren't an alternative to anything; they're just more +data belonging to whatever scope the call already sits in, evaluated +unconditionally, once, in sequence. So: push them there directly. + +`inline_call` (`mir/inlining.rs`) now: + +1. Appends the callee's *entire* root-scope locals (its parameters, and any + `local` it declares directly in its own body) onto + `caller_scopes[call_site_scope].locals` — not a new scope. `Vec::push` + can't collide with itself, so a second inlined call at the same site + (another sibling argument, or a later, unrelated sweep) simply finds more + locals already there and gets index ranges past them, the same way a + second ordinary `local` declaration would. Nothing to compare, nothing to + protect. +2. Still creates a `wrapper` scope, **unconditionally**, purely as the + `break` target for the callee's own `Return`s (via the existing + `Return`→`Break` rewrite) — but it never holds any locals itself + (`locals: vec![]`), so it's always safe to parent at the call site + directly, with no comparison needed. A scope with zero locals can never + collide with anything, regardless of what shares its offset. +3. Copies the callee's *deeper* scopes (its own nested `if`/`else`, loops — + anything beyond its root) as before, now parented under `wrapper_scope` + directly (`k` in the callee's own numbering → `k + wrapper_scope`; a + parent of `0`, the callee's own root, also lands on `wrapper_scope` by + that same formula, since the root itself was never copied — it was + dissolved into `call_site_scope` in step 1). + +This is *smaller* than either rejected candidate: no `scope_end` comparison, +no `contains_return`, no conditional "sometimes skip the scope" branch. It's +also the more honest fix in the sense the investigation entry's own +retrospective was reaching for: the bug was never really about which parent +a wrapper scope should point at — it was that inlining manufactured a scope +that didn't need to exist, and the false "these are exclusive" assumption +only ever became relevant because that scope was created as a *sibling* in +the first place. + +### Rebase logic + +Splicing the callee's body in now needs two different kinds of reference +rewriting instead of one uniform shift: references to the callee's own root +scope (`scope_index == 0`, in the callee's own numbering) redirect to +`call_site_scope` with `local_index` biased by wherever its locals landed; +everything else (deeper scopes) shifts by a plain `scope_offset` +(`wrapper_scope`), same as before. Generalized the existing `Rebaser` to +carry both `root_scope`/`root_bias` (for the redirect) alongside +`scope_offset` (for the uniform case) — see "Rebaser unification" below for +why this didn't end up as two separate types. + +## A real (accepted) regression: one dead SSA node per inlined call at the function root + +`opt::tests::test_simple_add` (`fn add(a: i32, b: i32) -> i32 { a + b }`) +hard-asserts exactly 3 SSA data nodes after inlining: `Param(0)`, `Param(1)`, +`Add`. It now produces 4 — an extra dead `Int(0)`. + +Cause: `opt::builder::Builder::build_function` seeds the function's root +scope specially — every local *past* the function's own declared parameters +gets a default value before the function body runs, on the assumption +anything there is a genuine `local x = ...;` that needs a starting value +before its own `LocalSet` overwrites it. That assumption held until now +because nothing but real source-level locals ever lived past `params_count` +in the root scope. Now, when an inlined call's site *is* the function root +(true for essentially all top-level arithmetic — the common case), the +locals pushed for it land in exactly that range, and get a wasted default +value seeded before `inline_call`'s own `LocalSet` immediately overwrites +it. + +Explicitly decided not to fix: harmless (nothing reads the dead node; final +WASM output is unaffected — confirmed via `test_lerp` and the arithmetic +execution tests, all correct), and the same node gets reused via +`Builder::node`'s existing CSE for any other `0`-valued literal the function +happens to need elsewhere. `test_simple_add`'s assertion and comment updated +to expect 4 nodes and explain why, rather than changing `build_function`'s +seeding to special-case this. + +## Checked (and ruled out) a second instance of the same bug shape + +Before accepting the design, checked whether +`mir::MIR::build_start_function` — which also combines multiple *separate* +scope trees (one per global initializer) into one synthesized function, +using the same `rebase_scope`/`Rebaser` machinery — had the identical +collision risk: two globals' own root scopes are also true siblings (both +parented at the combined start function's shared root), and +`compute_locals_offsets` would give them the same offset too. + +Verified empirically (not just on paper — this exact kind of reasoning +looked right for a rejected fix candidate earlier in the day, so it earned +a real wasmtime repro before being trusted either way) with two globals, +each declaring its own locals in its initializer block. It passed. Reason: +each global's *entire* initializer — locals included — is lowered as one +self-contained `Block` expression that becomes the *value* of a +`GlobalSet`, which routes through `opt::builder::build_block_expr`'s +clone-then-discard mechanism (the same thing that makes `if`/`else` +branches safe) rather than emitting bare `LocalSet` statements as direct, +uncloned siblings the way `inline_call`'s *old* design did. Sharing an +offset is only unsafe when a scope's locals get populated by `LocalSet`s +sitting as direct siblings in another scope's block, not wrapped in their +own `Block` boundary — `build_start_function` never does that. + +Added `codegen::tests::test_global_init_multiple_globals_with_own_locals_executes` +to lock this in, since the shape (two-plus globals each with their own +locals) had never actually been exercised before. + +## Rebaser unification + +Once `inline_call` needed a rebaser with the root-redirect capability +(`root_scope`/`root_bias`), the pre-existing `Rebaser`/`rebase_scope` (used +by `build_start_function` to combine globals' scope trees — a plain uniform +`+= scope_offset` shift, no redirect) became a special case of it: redirect +scope `0` to exactly `scope_offset` (nowhere special) with `root_bias: 0`. +Removed the old, separately-maintained duplicate tree-walk; `rebase_scope` +is now a two-line wrapper around the generalized `Rebaser`. One walk, two +uses, instead of two near-identical ones. + +## State + +`mir/inlining.rs`: old `Rebaser` removed, `inline_call` rewritten per +above. `opt/tests.rs`: `test_simple_add`'s node-count assertion updated +(3 → 4) with an explanatory comment. `codegen/tests.rs`: new regression +test for multi-global own-locals safety. All MIR snapshots touching +inlined-call scope shape regenerated (`cargo insta accept`) — the only +diffs are `parent`/`scope_index`/`local_index` values reflecting the new, +flatter scope shape; no structural surprises. Full suite: 732 passed / 0 +failed / 4 ignored. diff --git a/devlog/2026-08-17-chained-inlining-offset-collision-investigation.md b/devlog/2026-08-17-chained-inlining-offset-collision-investigation.md new file mode 100644 index 0000000..501d078 --- /dev/null +++ b/devlog/2026-08-17-chained-inlining-offset-collision-investigation.md @@ -0,0 +1,240 @@ +# 2026-08-17 — Chained-inlining flat-offset collision: root cause, two fix candidates, both deferred + +**Resolved same day — see +[2026-08-17-chained-inlining-offset-collision-fix.md](2026-08-17-chained-inlining-offset-collision-fix.md).** +Neither candidate below shipped as designed: 2b (`scope_offset`/`scope_end` +comparison) was implemented and verified first, then replaced with a +simpler fix after further discussion — inlining's `LocalSet`-populated +argument locals turned out not to need a new scope of their own at all, so +there was nothing left to protect against colliding with anything else's +new scope. Kept below as the historical record of the investigation that +found the root cause; the "for whoever picks this back up" section's +recommendation is superseded. + +Follow-on to the "chained-inlining flat-offset collision" bug noted in +[2026-08-17-compound-assignment-implementation-and-deferred-bugs.md](2026-08-17-compound-assignment-implementation-and-deferred-bugs.md). +Went deep on root cause and two different fix designs; ultimately reverted +everything and left the bug in place, per explicit decision to stop and +document rather than land a fix today. `codegen::tests::test_lerp` and +`opt::tests::test_simple_add`'s "extra node" investigation (see the other +entry) both trace back to this same mechanism, though `test_simple_add` +itself was already fixed independently (that was the `extend_bindings` +dead-node issue, unrelated to the collision below). + +## Precise root cause + +`opt::builder::compute_locals_offsets` gives every scope with the same +`parent` the identical flat local-offset (`offsets[parent] + +scopes[parent].locals.len()`), on the assumption that same-parent siblings +are mutually exclusive (true for `if`/`else` branches — never simultaneously +live). This assumption is *never actually declared* anywhere in the data +model (`BlockScope` carries no "these are exclusive" marker) — it's just an +inference the optimizer makes from tree shape, and it happens to have always +held for the constructs that used to create sibling scopes. + +`mir::inlining::inline_call` breaks it. For an inlined `#[inline]` call, it +builds `Block(wrapper)[LocalSet(body, 0, arg0), LocalSet(body, 1, arg1), ..., +Block(body)[...]]`, with `wrapper.parent = call_site_scope`. When a call +site's own arguments are themselves inlined calls (`(a + b) + (c + d)`), or +when an already-substituted `Block` from an *earlier, separate* inlining +sweep (a different `#[inline]` target) ends up nested inside a later one +(`a + (b - a) * t` — three different operator methods, three separate +sweeps), multiple such wrapper/body scope pairs end up as siblings under the +same `call_site_scope`, and hence get the identical offset. + +The precise mechanism for why this is unsafe, traced by hand at the +`opt::builder::Builder` level (not just "same offset is bad" — the exact +reason it's bad here and not elsewhere): + +- `build_block_expr`, whenever it processes *any* `Block{scope_index,...}` + node, does `child = extend_bindings(bindings, scope_index)` — clones + `bindings` fresh, does all its own work on that private clone, then writes + back only `bindings[..parent_len]` (`parent_len` = `bindings.len()` + *before* the clone) once done. Anything the nested block did beyond that + boundary is discarded. This is why `Aggregate`, `MemoryFill`, native + `Add`/`Sub` (which just call `build_expr` directly on each child against + the *same*, unextended `bindings` reference) are all safe even when two of + their children are independently-inlined calls sharing an offset: each + child's own `Block` handling clones-and-discards, so nothing leaks between + siblings — exactly the same mechanism that makes `if`/`else` branches safe. +- `LocalSet`'s handling is different: `ensure_bindings_capacity(bindings, + idx+1); bindings[idx] = new_val;` — it writes *directly* into whatever + `bindings` reference it was given, with no cloning and no bound. When a + `LocalSet` is one of a `Block`'s own sequential statements (exactly what + `inline_call` builds), it mutates that block's *shared* vector permanently, + visible to every subsequent sibling statement in the same block — this is + required for it to work at all (`local x = 1; x = x + 1;` needs the second + statement to see the first's write). + +So the collision is specific and narrow: it only happens when one inlined +call's `LocalSet`-staged argument slot shares an offset with *another* +inlined call's own internal scope, *and* both are reached through the same +shared, mutating vector rather than independent clones. That combination is +produced exclusively by `inline_call`'s own construction — nothing else in +the compiler builds a `LocalSet` targeting a scope that might share an +offset with something still needed. + +## Fix candidate 1 — stop offset-sharing in the optimizer + +`compute_locals_offsets` doesn't need to be this clever at all. Its output +(`locals_offsets`) has exactly one writer and one reader in the entire +codebase (`Builder::new` and `flat_index`) — fully encapsulated, confirmed +by grep. It exists solely to give `opt::builder::Builder`'s one internal +pass an O(1) flat-array lookup for "what data-flow node does this MIR local +currently hold," and is discarded the moment that pass returns. Final WASM +local count is decided entirely separately, later, by `Scheduler` — this +transient vector has zero bearing on emitted code. So: + +```rust +fn compute_locals_offsets(scopes: &[mir::BlockScope]) -> Box<[u32]> { + let mut offsets = Vec::with_capacity(scopes.len()); + let mut next = 0u32; + for scope in scopes.iter() { + offsets.push(next); + next += scope.locals.len() as u32; + } + offsets.into_boxed_slice() +} +``` + +No parent-walking, no exclusivity assumption, no possible aliasing — +every scope gets a permanently disjoint range. Cost: `data_bindings` can be +modestly larger for `if`/`else`/`match`-heavy functions, purely at compile +time, with no observable effect on output. + +**User's read**: this felt like patching around the real problem rather +than fixing it, and asked to reconsider at the architecture level instead — +specifically, whether the actual bug is that inlining produces a scope tree +that doesn't honestly represent what's happening (non-exclusive scopes +shaped like exclusive ones), which should be fixed at the source rather than +compensated for downstream. + +## Fix candidate 2 — make inlining's own scope tree accurate + +Two attempts here; the first is confirmed insufficient, the second is +hand-verified correct but unimplemented. + +### 2a — thread scope through `Call`'s own arguments (insufficient) + +Change `inline_expr` to return the "effective scope after processing this +expression" (unchanged unless inlining created new scopes), and have +`ExprKind::Call`'s argument loop thread that value between sibling +arguments — so a second argument's own inlining chains onto whatever the +first argument's inlining created, instead of both naively sharing +`current_scope`. Implemented (touching `inline_expr`'s signature and every +match arm to keep return types uniform, though only `Call` actually uses the +threaded value) and confirmed to fix the `(a + b) + (c + d)` case. + +**But `codegen::tests::test_lerp` (`a + (b - a) * t`) still failed after this +fix.** Traced why by hand: `lerp` chains three *different* operator methods +(`f32::sub`, `f32::mul`, `f32::add`), each inlined in its own *separate* +sweep of `run_inlining_pass` (one sweep per distinct `#[inline]` target). By +the time `f32::mul`'s sweep runs, its first argument is no longer a `Call` +at all — `f32::sub`'s earlier sweep already replaced it with a resolved +`Block`. `inline_expr` processes that argument via the ordinary `Block` +match arm, not `Call`, so 2a's threading — which only updates the scope +value inside `Call`'s own handling — never sees it. `f32::mul`'s new wrapper +still naively chains onto `call_site_scope` (unaware `f32::sub`'s scope +exists), and — critically — even though the nested `Block(wrapper_sub)`'s +*own* processing individually self-corrects (its own `LocalSet` overwrite +gets superseded by the correct final assignment within its own evaluation), +`build_block_expr`'s write-back still propagates that intermediate, +already-self-corrected value back into the *enclosing* wrapper's vector at +an offset that enclosing wrapper's own earlier argument had already staked a +claim on — because that offset falls within the enclosing wrapper's +`parent_len`, i.e. inside the write-back boundary, not beyond it. Traced the +full three-level nesting by hand and confirmed this exact mechanism +reproduces `lerp`'s wrong result (computing `(b-a) + (b-a)*t` instead of +`a + (b-a)*t`). Reverted (see `git diff` on `mir/inlining.rs` — back to +exactly the pre-session state, only the pre-existing unrelated `Trunc` arms +remain). + +### 2b — chain onto whichever of two candidates has the larger occupied range (verified correct, not implemented) + +At the point `inline_call` is about to push a new wrapper scope, compare two +candidates and chain onto whichever already occupies more flat-index space: + +```rust +fn scope_offset(scopes: &[BlockScope], mut scope: ScopeIndex) -> u32 { + let mut offset = 0u32; + while let Some(parent) = scopes[scope as usize].parent { + offset += scopes[parent as usize].locals.len() as u32; + scope = parent; + } + offset +} + +fn scope_end(scopes: &[BlockScope], scope: ScopeIndex) -> u32 { + scope_offset(scopes, scope) + scopes[scope as usize].locals.len() as u32 +} + +// in inline_call, before pushing the wrapper scope: +let last_scope = (caller_scopes.len() as ScopeIndex).saturating_sub(1); +let parent_scope = if scope_end(caller_scopes, last_scope) + > scope_end(caller_scopes, call_site_scope) +{ + last_scope +} else { + call_site_scope +}; +``` + +Unlike 2a, this needs **no explicit threading at all** — `caller_scopes` is +one shared, monotonically-growing list across every sweep, so +`caller_scopes.len() - 1` at any point already reflects everything created +so far, from *any* sweep, at *any* nesting depth, automatically. Hand-traced +against both known failure cases: + +- **`calc(a,b,c,d) { (a+b) + (c+d) }`**: wrapper1/body1 (for `a+b`) chain + onto `scope0` (nothing created yet, ties, falls back correctly). Wrapper2/ + body2 (for `c+d`) compare `scope_end(scope0)=4` vs `scope_end(body1)=6` → + chains onto `body1`, giving it range `[6,8)`, disjoint from body1's + `[4,6)`. Wrapper3/body3 (outer `+`) compare `scope_end(scope0)=4` vs + `scope_end(body2)=8` → chains onto `body2`, range `[8,10)` — all three + fully disjoint. +- **`lerp(a,b,t) { a + (b-a)*t }`**: same pattern across all three separate + sweeps — `body_sub` gets `[4,6)`, `body_mul` (chaining onto `body_sub`, + found via the same global `caller_scopes.len()-1` comparison, correctly + works even though `body_sub` was created in an *earlier, separate* sweep) + gets `[6,8)`, `body_add` (chaining onto `body_mul`) gets `[8,10)` — again + fully disjoint, no explicit propagation needed since `caller_scopes.len()` + already captures it. + +Also re-verified this doesn't regress the earlier-considered counterexample +(an inlined call inside an `if`-branch that already declared `local x`, +where the *other* branch — structurally later in the scope list but +numerically smaller — must not be chosen over the branch that actually holds +`x`): comparing `scope_end` of both candidates picks the true call-site +branch correctly there too, since its own `scope_end` (accounting for `x`) +exceeds the unrelated sibling's. + +Not implemented — reverted along with 2a per explicit decision to stop and +just record findings. + +## State as of this entry + +`mir/inlining.rs` is back to exactly its pre-session diff (only the +pre-existing, unrelated `Trunc` unary-op arms remain — confirmed via `git +diff`). The separate `extend_bindings` dead-node fix (see the other entry) +is untouched and stays. Full suite: 715 passed / 2 failed +(`codegen::tests::test_lerp`, `tir::tests::test_stdlib_struct_field_access` +— the `char` gap), same as before this investigation started. + +## For whoever picks this back up + +Implement 2b (`scope_offset`/`scope_end` comparison in `inline_call`) — it's +verified correct against both known failure shapes, and it's *simpler* than +2a despite fixing more (touches only `inline_call`, not `inline_expr`'s +entire dispatch table). Add tests before or alongside the fix, since this +bug went unnoticed through all of this session's earlier operator-overloading +work: + +- A white-box MIR-level test asserting no two scopes created by chained + inlining ever occupy overlapping flat-index ranges (compute offsets the + same way `compute_locals_offsets` does, on a `calc`-style chained-call + case, and assert disjointness directly — would have caught this + immediately without needing wasmtime execution at all). +- An execution-level test alongside `test_lerp`, e.g. `calc(a,b,c,d){(a+b)+(c+d)}` + compiled and run through wasmtime with inputs chosen so a collision + produces a detectably wrong result (as `-5,5,-5,5` did here) — covers the + single-sweep sibling-argument case `test_lerp` alone doesn't exercise. diff --git a/devlog/2026-08-17-compound-assignment-implementation-and-deferred-bugs.md b/devlog/2026-08-17-compound-assignment-implementation-and-deferred-bugs.md new file mode 100644 index 0000000..e73b205 --- /dev/null +++ b/devlog/2026-08-17-compound-assignment-implementation-and-deferred-bugs.md @@ -0,0 +1,133 @@ +# 2026-08-17 — Compound assignment implementation, dead-code-lint fix, and two deferred bugs + +**Both items below are resolved as of later the same day.** The chained-inlining +bug's fix is in +[2026-08-17-chained-inlining-offset-collision-fix.md](2026-08-17-chained-inlining-offset-collision-fix.md) +(via the investigation in +[2026-08-17-chained-inlining-offset-collision-investigation.md](2026-08-17-chained-inlining-offset-collision-investigation.md)); +the `char` item was already resolved in place below when this entry was +first written. + +## Compound assignment (task #8) implemented + +Followed the design in +[2026-08-17-compound-assignment-trait-dispatch-design.md](2026-08-17-compound-assignment-trait-dispatch-design.md). +`tir::BinaryOp` (18 non-assignment variants) now replaces `ast::BinaryOp` on +`ExprKind::Binary.operator`; a new `Assign` node covers plain `x = y` for +`Local`/`Global`/`FieldAccess`/`Placeholder` targets; `CompoundAssign`/ +`GenericCompoundAssign`/`CompoundStore`/`GenericCompoundStore` cover `+=` and +friends, with `self_type: TypeIndex` (not a `type_args` slice — none of the +operator traits' methods have generics beyond the implicit `Self`) and +`abstract_method_id` naming per review. `resolve_compound_operator` replaces +the old ambiguous-`Option` resolver, returning `Result`. +MIR lowering shares one `build_compound_operator_call` helper between the +`Expression`-target and `Place`-target pairs, calling `record_call_edge` +(the step flagged as required, not optional, by an earlier efficiency +review — see the design doc) and fixes the pre-existing +`arr[i()] += 1` double-eval bug via the temp-local-sink idiom already used +elsewhere in `mir/mod.rs`. Verified directly against the accepted MIR +snapshot for a struct-field-through-pointer compound assignment: address +computed once, call collapsed to a native `Add`, both load and store reusing +the same temp local. + +## Dead-code lint fired on trait impl methods (fixed) + +`report_unused_items` (`tir/builder.rs`) was flagging every primitive +`impl Add for i32`-style method as "never used" whenever a given test/program +didn't happen to invoke that specific operator on that specific type — since +each test compiles a small isolated snippet but the full stdlib (all ~60 +primitive operator impls across 10 numeric types) is always loaded. This +alone accounted for most of the "584 passed / 129 failed" baseline noted in +the previous devlog entry's implementation. Fixed by extending the existing +`type_param_parent` check: `TypeParamOwner::TraitImpl(_)` is set only by +`AstNodeRef::TraitImplFunction`'s registration path (`tir/builder.rs:6730`), +never by the inherent-impl path (`TypeParamOwner::ImplBlock(_)`), so it's a +free, zero-cost signal already sitting on `Function` — no precomputed +`HashSet`/`Vec` needed. Matches Rust: implementing a trait is itself +the "use." Test suite: 609 passed/104 failed → 710/3. + +## `opt::tests::TestCase::get_first_func` fixed, revealing a different bug + +`get_first_func` assumed `mir.functions.first()` was always the test's own +function — reasonable before stdlib had much content, wrong now that +primitive operator impls exist (though DCE turned out to still strip them +correctly in practice). Added `get_tagged_func(tag)` (`#[tag = "..."]` on the +test's function + `tir.tagged_items` lookup, mirroring +`resolve_operator_trait`'s own pattern) as the robust alternative. Using it +on `test_simple_add` proved the "wrong function" theory wrong — `add` was +already being selected correctly — and surfaced the real bug underneath: a +genuinely extra `Int(0)` node in `add`'s own output. + +Root cause: `mir::inlining::inline_call` structures an inlined `#[inline]` +call as a wrapper block containing one `LocalSet` per parameter (writing +into the callee's rebased scope via its global `flat_index`) *before* the +callee's own body block is spliced in as a sibling statement. `LocalSet` +uses `ensure_bindings_capacity` (grows with `StackResult::Unit`, no node +allocated) so the forwarding itself is free — but `extend_bindings`/ +`extend_bindings_in_place` (`opt/builder.rs`), run when that body block is +later entered, unconditionally `.push()`ed a fresh `default_value` for every +one of its locals, landing past the slots the `LocalSet`s had already +populated and producing nodes no `flat_index()` call ever references (CSE +dedupes multiple identical defaults into one, which is why only one orphan +showed up despite two parameters). Fixed by having both functions check +each local's real `flat_index` against the current bindings length first, +skipping the default when the slot's already populated. Test suite: +710/3 → 711/2 (no new failures elsewhere — verified no other inlining-heavy +test depended on the old behavior). + +An independent review (fork, instructed to be adversarial rather than +confirm) verified this fix's safety by tracing every `extend_bindings` +caller (`build_if_else`, `build_switch_as_if_chain`, `build_switch_arm`, +`build_loop`): each sibling scope always starts from an untouched parent +snapshot (per `build_block_expr`'s write-back, `bindings[..parent_len] +.copy_from_slice(&child[..parent_len])`), so `idx == child.len()` holds by +construction outside the inlining case — confirmed via +`debug_assert_eq!(idx, child.len())` on the fallthrough branch, never +tripped across the full suite. + +## Two bugs found, initially deferred (user: "keep them noted, we will tackle them later") — both since resolved + +**Chained-inlining flat-offset collision (value-correctness bug) — fixed, +see the dedicated fix entry linked above.** While +stress-testing the fix above, the same review fork constructed +`fn calc(a,b,c,d: i32) -> i32 { (a + b) + (c + d) }` and ran it through +wasmtime: `calc(-5,5,-5,5)` returns `-5`, not `0`. Confirmed pre-existing +(not caused by the `extend_bindings` fix above) by temporarily reverting +that fix and reproducing the identical wrong value at the identical spot. +Root cause: `compute_locals_offsets` gives sibling scopes the same flat +offset on the assumption they're "never simultaneously active" — true for +ordinary lexical siblings, false for *chained* inlining, where an outer +inlined call's `LocalSet` stages a value at a shared offset and a second, +also-offset-sharing inlined sibling's own `LocalSet` overwrites that slot +before the staged value is ever consumed. `(a+b)`'s inlined scope, `(c+d)`'s, +and the outer `+`'s all land at the same offset in the failing case; `c` +silently clobbers the staged `(a+b)` result. +**Likely the same root cause as `codegen::tests::test_lerp`'s wasmtime trap** +(`a + (b-a)*t` — also three chained inline-dispatched ops) — check this +first before treating `test_lerp` as its own investigation. Fix most likely +belongs in `compute_locals_offsets` or `inline_call`: offset-sharing needs +to account for staged-but-not-yet-consumed values from simultaneously-live +inlined siblings, not just non-overlapping lexical scope. + +**`char` missing `impl Sub`/`impl Add` — resolved, intentionally, as "no impl."** +`c - 32` for `c: char` reports "operator `-` cannot be applied to type +`char`" — this was flagged as a possible gap, but the design decision +(explicitly made, not a default): `char` deliberately gets no `impl Add`/ +`impl Sub` at all. Not just a Rust-parity choice — arithmetic directly on +`char` isn't safe: `char` carries a validity invariant (a legal Unicode +scalar value), and an `Add`/`Sub` impl would let any in-range-looking +expression silently produce an out-of-range or surrogate bit pattern with no +checkpoint to reject it. Requiring an explicit cast to an integer type first +(`(c as u8 - 32) as char`, the same idiom `std/main.wx`'s own +`to_ascii_uppercase`/`to_ascii_lowercase` already use) puts the unsafe part +where it's already visible and already the user's responsibility — the `as +char` cast back — rather than hiding it inside an innocuous-looking `+`. +So there is no compiler fix here — the diagnostic was already correct. Only +the *test* was stale: `test_stdlib_struct_field_access` (a pre-existing +misnomer — its body never touched a struct) asserted `c - 32` should compile +with no diagnostics, which was true before trait-dispatch made arithmetic +require a real impl. Renamed to `test_char_arithmetic_requires_explicit_cast` +and rewritten to use the cast-based form; added a sibling +`test_char_arithmetic_without_cast_is_error` to lock in the rejection as +intentional, not incidental. 717 passed / 1 failed (only `test_lerp`, the +chained-inlining bug, remained — fixed later the same day, see above). diff --git a/devlog/2026-08-17-compound-assignment-trait-dispatch-design.md b/devlog/2026-08-17-compound-assignment-trait-dispatch-design.md new file mode 100644 index 0000000..74676f0 --- /dev/null +++ b/devlog/2026-08-17-compound-assignment-trait-dispatch-design.md @@ -0,0 +1,260 @@ +# 2026-08-17 — Compound assignment (`+=`) as trait-dispatch sugar: design + +## Context + +Follow-on to the operator-overloading feature (`Add`/`Sub`/`Mul`/`Div`/`Rem`/`Neg` as +traits, tag-resolved via `#[tag = "add"]` etc., dispatched through +`EvalMode`/`OperatorTraits` — see the primitive-impl and `build_arithmetic_expr` +work already landed for plain `+`/`-`/`*`/`/`/`%` and unary `-`). This document +covers `+=`/`-=`/`*=`/`/=`/`%=` specifically: `x += y` is sugar for +`x = x.add(y)`, reusing the resolved trait method, not a separate `AddAssign` +trait. + +This took a lot of iteration to land on the right shape. Recording the +rejected alternatives alongside the final design, because the reasons they +were rejected are exactly the constraints the final design has to satisfy — +without them the four-node split looks like overkill. + +## The core problem + +Computing the new value for `x op= y` needs `x`'s *current* value (read) and +also needs to write the result back to the same place (write) — but the +result has to come from *real trait dispatch* now, not a hardcoded native op, +to stay consistent with how plain `+` already works. + +The naive fix — build `x = x.add(y)` as a literal TIR tree, i.e. reference the +`x` expression twice (once as the call's receiver, once as the assignment +target) — runs into two independent blockers: + +1. **`Expression`/`Place` aren't `Clone`.** For `Local`/`Global` targets this + wouldn't matter (their "receiver" is just `Copy` indices, trivially + reconstructible without cloning anything). For a `Load { place }` target + (`arr[i] += 1`, `ptr.* += 1`), `Place` can embed arbitrary sub-expressions + (`PlaceKind::Index { object, index }`), which are not cheap to duplicate. +2. **Even if `Place` were `Clone`, that wouldn't fix evaluation order.** + Verified directly: `lower_index_address`'s dynamic-index branch + (`mir/mod.rs`, non-constant case) lowers `index` *inline* into the + returned address expression — no temp-local sinking, unlike the adjacent + slice branch. Today's `lower_compound_assignment` already calls + `lower_place_address` **twice** for a `Load{place}` target (once inside + `lower_expression(left)` for the old-value read, once directly for the + store) — meaning **`arr[i()] += 1` already double-evaluates `i()` today**, + a real pre-existing bug, independent of trait dispatch. Cloning the place + wouldn't avoid this; the fix has to happen in MIR lowering regardless + (materialize the address once, into a temp local, reuse for both the load + and the store — the codebase already uses this exact idiom elsewhere, + e.g. `mir/mod.rs` around the slice-object temp in `lower_index_address`). + +So: whatever the final shape is, it must (a) never require duplicating a +`Place`, and (b) fix the address-computed-twice bug for the `Load` case while +it's being touched anyway (agreed explicitly — not silently perpetuating a +bug into new code written this session). + +## Rejected shapes, and why + +- **`Binary { operator: Assign, left: , .. }`** + — blocked by the `Clone` problem above; also, plain assignment's own + `Load{place}` target *doesn't* go through `Binary{Assign}` at all — it + already uses a dedicated `Store { target: Place, value }` node, precisely + because a place can't be squeezed into a generic expression-shaped LHS. + `lower_assignment` (MIR) has no `Load` arm at all for this reason. + +- **One `CompoundAssign { operator, left, right, method_id: Option }` + node, used for all four target kinds**, with `None` meaning either + "typeset-bounded, use the native op" or "genuinely unsupported, diagnostic + already pushed." Rejected: the two `None` reasons are semantically + different, and a caller building a node from a bare `Option` has no way to + tell them apart short of re-deriving the check itself. + +- **Split by target kind: `LocalSet`/`GlobalSet`/`FieldSet` (reusing + `build_arithmetic_result` directly — `Some`/typeset-bounded/diagnostic all + handled for free) + `CompoundStore` for `Load`.** Rejected on two grounds: + `FieldSet`'s safety (object rebuildable without re-evaluating it) silently + depends on an invariant enforced *elsewhere* (`build_arithmetic_assignment_expr`'s + existing guard restricting field-assignment's `object` to `Local`/`Global`) + that isn't visible in `FieldSet`'s own shape — fragile if that guard is + ever loosened. And `CompoundStore` still needed the same `Option` + ambiguity as above, for the one target that actually mattered. + +- **Moving resolution entirely into MIR** (`lower_compound_assignment` calls + `find_trait_impl` itself, no TIR involvement) — rejected: TIR is where + "does this type implement `Add`" has to be diagnosed (a real user-facing + error), and where the go-to-definition access gets recorded + (`resolve_operator_method` pushes `SourceSpan` onto the resolved method's + `accesses` list at TIR-build time). Neither belongs in MIR. + +- **Treating typeset-bounded (`Mem::Size`) as needing a distinct "native op + fallback" shape, separate from the generic (`T: Add`) case.** This was the + last wrong turn, worth recording because the fix is the key insight the + whole design now rests on: **typeset-bounded and generic-not-yet-concrete + are the same category.** `Mem::Size` is an `AssocTypeProjection` through an + abstract `Mem: Memory` type parameter, and it resolves to a concrete type + (e.g. `u32`) via the *same* substitution machinery + (`resolve_tir_type`/`current_substitutions`) that resolves a bare + `TypeParam` once the surrounding generic function is monomorphized — + confirmed by how `GenericMethodCall`'s MIR lowering already resolves + projections like `Self::M`, not just bare type params. So there is no need + for a native-op fallback shape at all — deferring to monomorphization + (`GenericCompoundAssign`/`GenericCompoundStore`, below) is the fallback, + uniformly, for anything not concretely resolvable *yet*. This also means + the "when do we build the generic node" decision does **not** need task + #9's typeset/trait-bound checking machinery — it only needs "is `ty` a + bare `Type::TypeParam` or `Type::AssocTypeProjection`," which is a much + simpler, already-general question (the same kind of check that decides + `MethodCall` vs. `GenericMethodCall` for ordinary calls, since + `GenericMethodCall`'s `type_args[0] = Self` is populated whenever the + receiver isn't already fully concrete). + +## Precedent: how `t.method()` already works for `fn f(t: T)` + +Directly informed the final design. TIR builds `ExprKind::GenericMethodCall { +id, type_args, arguments }` — `id` is the **trait's abstract method +declaration** (no body), `type_args[0] = Self` (still abstract, e.g. +`TypeParam{0}`). TIR does not try to resolve which impl this is — it can't, +`T` isn't concrete yet. + +Resolution happens in MIR, at lowering time (`mir/mod.rs`, `GenericMethodCall` +arm): `type_args` gets resolved through `current_substitutions` (concrete by +then, because the *surrounding* function has already been monomorphized for +this instantiation). If the trait method is abstract (no body — the normal +case), MIR calls `self.tir.find_trait_impl(concrete_self, trait_index)` +**right there** — the same public `find_trait_impl` API this whole feature +already uses — to find the concrete impl, then builds a `Call` to it. No +vtables, no runtime type tag — monomorphization plus a late static +resolution, reusing existing public TIR API from MIR. + +`GenericCompoundAssign`/`GenericCompoundStore` (below) follow this exact +pattern: no new machinery, just the compound-assignment analogue of +`GenericMethodCall`. + +## Final design + +### New `tir::BinaryOp` + +A TIR-only enum, `ast::BinaryOp` minus the six assignment variants (`Assign`, +`AddAssign`, `SubAssign`, `MulAssign`, `DivAssign`, `RemAssign`). +`ExprKind::Binary.operator` becomes `Spanned`. Assignment is no +longer representable through `Binary` at all — it has its own dedicated +nodes, below. Touches every existing `Binary` construction site (~30, across +arithmetic/comparison/logical/bitwise) with a mechanical conversion where +`operator` is first extracted from the AST; the compiler enforces every site +is updated (exhaustive match). + +### Plain assignment: `Assign` + +```rust +Assign { left: Box, right: Box } +``` +Replaces `Binary { operator: Assign, .. }` for `Local`/`Global`/`FieldAccess` +targets. `Load{place}` keeps using the existing `Store { target: Place, value +}` node, unchanged — this split already existed for plain assignment; `Assign` +just extends the same reasoning to the other three target kinds instead of +lumping them into the generic (soon-to-be-gone) `Binary{Assign}` shape. + +### Compound assignment: four nodes, split two ways + +Split 1 — **resolved now vs. deferred to monomorphization** (mirrors +`MethodCall` vs. `GenericMethodCall`): + +```rust +// ty already concrete, find_trait_impl resolved a method now. +CompoundAssign { + target: Box, // Local / Global / FieldAccess + rhs: Box, + method_id: ast::DefId, // non-optional — this node only exists when dispatch succeeded +} + +// ty is still abstract (bare TypeParam, or an AssocTypeProjection like +// `Mem::Size` through an abstract type param) — resolved later, in MIR, +// exactly like GenericMethodCall's abstract-method branch. +GenericCompoundAssign { + target: Box, + rhs: Box, + abstract_method_id: ast::DefId, // the trait's abstract method declaration + self_type: TypeIndex, // still abstract; = target's type +} +``` + +(`self_type` is stored bare rather than as a single-element `type_args: Box<[TypeIndex]>` — unlike `GenericMethodCall`, none of the operator traits' methods have any generics of their own beyond the implicit `Self`, so there's never a second slot to hold.) + +Split 2 — **target is a plain `Expression` vs. a `Place`** (mirrors `Store` +vs. everything else): `Load{place}` needs address-computed-once semantics +that the other three target kinds don't, so it gets its own pair instead of +folding into the shapes above with a `Box` that only sometimes +means "also gets read": + +```rust +CompoundStore { + target: Box, + rhs: Box, + method_id: ast::DefId, +} + +GenericCompoundStore { + target: Box, + rhs: Box, + abstract_method_id: ast::DefId, + self_type: TypeIndex, +} +``` + +Four nodes, not two and not one — but each one is a single, uniform, +self-documenting shape; nothing needs a bare `Option` whose meaning depends +on which case you're in, and nothing needs to know its own field is +sometimes safe to duplicate and sometimes isn't. + +### Resolution logic (`build_arithmetic_assignment_expr`) + +For each of the four `left.kind` arms (`Local`/`Global`/`FieldAccess`/`Load`), +after building/coercing `rhs` exactly as today: + +1. `ty` = the target's type. +2. If `self.tir.types[ty]` is `Type::TypeParam` or `Type::AssocTypeProjection` + → look up the trait's *abstract* method (`self.tir.traits[trait_index] + .entries.get(&method_symbol)` → `ImplEntry::Method(func_index)` → that + function's `id`) → build `GenericCompoundAssign`/`GenericCompoundStore` + with `self_type: ty`. +3. Otherwise, `ty` is concrete → call `resolve_operator_method` (the existing + pure lookup from the plain-`+` work) → `Some(func_idx)` → build + `CompoundAssign`/`CompoundStore` with that method's `id` (also where the + go-to-definition access gets pushed, same as `build_operator_dispatch`) → + `None` → push the existing "operator cannot be applied" diagnostic, return + `Err(())` (node is never constructed; the compiler pipeline halts before + MIR ever sees a real diagnostic, so there's nothing left to lower). + +No node is ever built for "unsupported" — that path just fails the builder, +same as it does for `+` today. + +### MIR lowering + +`CompoundAssign`/`GenericCompoundAssign` (target is `Local`/`Global`/ +`FieldAccess`): trivial — extract indices from `target.kind` (safe to +reference twice; they're `Copy` metadata, not computations), lower `target` +as a value for the old-value read, lower `rhs`, build a `Call` (direct to +`method_id`, or via `find_trait_impl` + `mono_registry` for the generic case, +exactly like `GenericMethodCall`'s abstract branch), then `LocalSet`/ +`GlobalSet`/`AggregateSet` with that call as the value. + +`CompoundStore`/`GenericCompoundStore` (target is a `Place`): the careful +one. Call `lower_place_address` **exactly once**, sink the resulting pointer +into a fresh temp local (`LocalSet` pushed to `sink`, matching the existing +temp-local idiom already used elsewhere in this file), then reference that +temp via `LocalGet` for both the `PointerLoad` (old value) and the +`PointerStore` (new value) — guaranteeing any side-effecting sub-expression +in the place (e.g. `i()` in `arr[i()] += 1`) runs exactly once. This is the +fix for the pre-existing bug identified above; it lands as part of this work +since `lower_compound_assignment`'s old `Load` arm is being replaced anyway. + +### Scope boundary vs. task #9 + +Task #9 ("support `Type::TypeParam` bounded by `Add`/etc. in operator +checks") is about `build_arithmetic_expr`/`build_arithmetic_result` — plain +`+`/`-`/etc. — which today has no path for a bare `TypeParam` operand at all +(neither `is_typeset_bounded_assoc_type` nor `find_trait_impl` handle it). +Compound assignment's generic case doesn't block on that: the "is `ty` +abstract" check above is simpler and more general than what #9 will add +(#9 is specifically about checking a `TypeParam`'s *bound* actually includes +the relevant trait before allowing the operator — compound assignment's +`GenericCompoundAssign` doesn't need that check itself, since a `T: Add` +bound was already required by the function's own signature to even reach +this code meaningfully; resolution is fully deferred to MIR regardless). diff --git a/devlog/2026-08-18-bitwise-operators-enum-anchor-generic-trait-bugs.md b/devlog/2026-08-18-bitwise-operators-enum-anchor-generic-trait-bugs.md new file mode 100644 index 0000000..546d072 --- /dev/null +++ b/devlog/2026-08-18-bitwise-operators-enum-anchor-generic-trait-bugs.md @@ -0,0 +1,251 @@ +# 2026-08-18 — Bitwise operator traits, enum explicit-anchor values, two generic-trait-dispatch bugs, and a found-but-deferred memory-tag bound gap + +Long session covering several mostly-independent pieces of work, tied +together by a running theme: every feature addition immediately got +stress-tested against real `.wx` example code, which is what surfaced three +of the four bugs fixed today. Full suite: 762 passed / 0 failed / 4 ignored. + +## 1. Bitwise operator overloading (`BitAnd`/`BitOr`/`BitXor`/`Shl`/`Shr`/`BitNot`) + +Extended the existing arithmetic-operator-trait machinery +(`Add`/`Sub`/`Mul`/`Div`/`Rem`/`Neg`) to bitwise operators, same shape: +`#[tag = "..."]`-marked stdlib traits, `OperatorTraits::for_op`/`for_unary_op` +lookup tables, native fast-path codegen preserved for primitives/`bool` +(`build_bitwise_result` mirrors `build_arithmetic_result`), real +`MethodCall`/`GenericMethodCall` dispatch only for structs and +typeset/generic-bound cases. `#[inline]` on every primitive impl collapses +calls back to bare intrinsics — verified via `wasm2wat`, zero call overhead. + +Comparison operators (`==`/`<`/etc.) were explicitly scoped out for a later +session — deferred, not designed yet (open question: 6 flat traits vs. +Rust-style `PartialEq`/`PartialOrd` split). + +## 2. Integer literal width: `i64` → `u64` + +Found while testing bitwise ops on negative enum values: `parse_integer_literal` +stored literals as `i64`, capping representable magnitude at `i64::MAX` — +`u64::MAX` and `i64::MIN` literals couldn't even be written. Root-cause fixed +by widening `ExprKind::Int`/`ast::Expression::Int` to `u64`, representing the +raw non-negative magnitude as written; negation is always a separate +`Unary{InvertSign}` node, never folded into the literal itself outside +`eval_const_expr`. `ConstValue::Int` stays `i64` (bit-reinterpreted, +`u64::MAX as i64 == -1`, same convention `IntegerRange` already used) — it +represents an already-typed, resolved constant, a different concern from the +literal's pre-coercion magnitude. + +Two boundary bugs fixed alongside: +- `coerce_untyped_unary_expr` range-checked negation against the + *positive*-max bound, wrongly rejecting `i8::MIN`/`i16::MIN`/etc. (the + most-negative value of each width has no positive counterpart in two's + complement). Fixed with a dedicated `TYPE::MIN.unsigned_abs()` magnitude + check. +- `eval_const_expr`'s Div/Rem folded with signed semantics unconditionally + (`u64::MAX / 2` gave `0` instead of the correct unsigned answer) — fixed by + checking `expr.ty`'s signedness and routing through `u64` wrapping ops when + unsigned. `Add`/`Sub`/`Mul` didn't need this (representation-agnostic in + two's complement). + +## 3. Enum variants now require an explicit anchor value + +Old behavior: `enum E: repr { A, B = 5, C }` silently defaulted `A` to `0` +with zero required values anywhere — `examples/compare/main.wx`'s `Ordering` +enum was actually `{ Less, Equal = 0, Greater = 1 }`, so `Less` silently +collided with `Equal` at `0`. New rule: an implicit (auto-incrementing) +variant is only legal once *some earlier* variant in the same enum wrote an +explicit value — `{ A = 0, B, C }` still auto-increments `B`/`C` from `A` +fine, but `{ A, B }` is now `E1071` on `A`. New diagnostic +`EnumVariantRequiresExplicitValue`; implementation is +`next_auto_value: Option` in `build_enum` (`None` = no anchor yet) — a +plain bool flag was tried first, then replaced with the `Option` per review +feedback, which also simplified "does a broken-but-present value still +anchor" to "no" for free (unified state, not two separately-tracked things). + +Blast radius was bigger than the initial `.wx`-file grep found: ~15 +Rust-embedded test fixtures across `mir`/`opt`/`codegen`/`tir` tests relied on +an implicit first variant. One of them +(`codegen::tests::test_match_enum_dispatch_runs_correctly`) hard-aborted the +*entire* test binary via `TestCase::new`'s deliberate +`std::process::exit(1)` on TIR errors — worth remembering next time a +`codegen::tests` run reports zero clean failures instead of a normal +per-test `FAILED`. + +## 4. Generic-bound dispatch for unary operators (`Neg`/`BitNot`) + +`build_operator_dispatch` (binary) already had a `Type::TypeParam` branch — +`build_unary_operator_dispatch` didn't, so `fn f(x: T) -> T { -x }` +silently failed to dispatch (documented as a known gap while adding `BitNot`, +fixed today). Added the missing branch, mirroring the binary case exactly: +routes through `resolve_bounded_operator_method` into a `GenericMethodCall`, +resolved at MIR monomorphization time. Verified against both the native +fast-path case (`mir::tests::test_generic_bitnot_bound_resolves_to_primitive_impl`, +snapshot-checked) and a struct-impl case (`Vec2` with real `Neg`/`BitNot` +impls, chained through both generic functions, checked via `wasmtime` against +a hand-computed result). + +## 5. Two bugs in "method has its own type params" handling + +Found via a real example (`examples/hashing/main.wx`, a `Hasher`/`Hash` +pair modeled on Rust's `std::hash`) that a `fn write(...)` +method declared *inside a trait impl* — as opposed to the impl block itself +being generic — hit two independent, previously-untested bugs: + +**5a. TIR: `TraitImplFunction` dropped the method's own type params entirely.** +`AstNodeRef::TraitImplFunction` (methods inside `impl Trait for Type { }`) +hardcoded the new `Function`'s `type_params: Box::new([])` and never called +`resolve_type_param_bounds` for them — unlike the exactly analogous +`InherentImplFunction` and `TraitFunction` arms, which both do this +correctly. Result: `Mem` inside `fn write(self: Mem::&Self, ...)` +resolved fine when written directly on the *trait*, but "cannot find type +`Mem` in this scope" the moment an *impl* provided it — invisible until now +because `resolve_type_param_bounds` early-returns on an empty param list, so +every trait-impl method without its own generics (the common case) never hit +the gap. Fixed by mirroring `InherentImplFunction`'s pattern. + +**5b. MIR: abstract dispatch conflated "impl block is generic" with "impl's +copy of the method is generic."** Once 5a was fixed, the same example crashed +*codegen* instead (`self.func_wasm_index[&id]`, "no entry found for key") — +`GenericMethodCall`'s abstract-method-dispatch branch decided whether to +reuse a bare, already-emitted function id vs. monomorphize on demand purely +by checking `impl_type_args.is_empty()` (the impl *block's* own generic args) +— which says nothing about whether the impl's *method* itself declares +additional params (`Mem` on `write`, independent of the impl block, which +here isn't generic at all: `impl Hasher for DefaultHasher`). Reused the bare +id, which was never actually emitted (`MIR::build`'s eager-emission loop +skips anything with nonzero *total* type params), producing a `Call` to +nothing. Fixed by also checking the impl method's own `type_params`, and +building the full monomorphization arg list from impl-block args + the +method's own args (`resolved[1..]`, skipping the leading `Self` slot). +`resolve_generic_compound_method` has the identical shape/comment +("exactly `GenericMethodCall`'s abstract-method branch") but is *not* +affected — compound-assignment only ever dispatches through the fixed +`OperatorTraits` set, none of which declare their own extra params, so +there's no live bug there, just a structurally similar but currently-inert +code path. Confirmed via `git diff`/side-by-side re-reading, not fixed +speculatively. + +Both got minimal regression tests: 5a as a TIR-only resolution check +(`test_trait_impl_method_with_own_generic_type_param_resolves`), 5b as a +from-scratch `Writer`/`Consumer` shape with null pointers and no hashing +logic (`test_trait_method_with_own_type_param_called_through_generic_bound`) +— deliberately stripped of the original FNV-1a repro's incidental complexity, +verified to still reproduce the exact panic when reverted. + +## 6. Dead-code cleanup (found while reviewing the above) + +- `coerce_untyped_binary_expression`'s bitwise-operator arm was provably + unreachable — confirmed by temporarily instrumenting it with `eprintln!` + and running the full suite plus a manual CLI check with `--nocapture` + (zero hits), then explaining *why*: `build_bitwise_binary_expr`, unlike + `build_arithmetic_expr`, always resolves its own type inline against + `access_ctx`'s expected type (or reports "type annotation required" + itself), so a bitwise `Binary` node is never left in the untyped state + this function exists to coerce. It was also stale even hypothetically — + its allowlist only covered `i32`/`i64`/`u32`/`u64`, missing the + `u8`/`i8`/`u16`/`i16` impls added this session. Replaced with a + `debug_assert!`. +- That removal made `tir::BinaryOp::is_bitwise` fully unused — removed. +- Same sweep found `ast::BinaryOp::is_assignment`/`is_comparison`/ + `is_logical`/`is_arithmetic`/`is_bitwise` (a *different*, unrelated + `BinaryOp` type from the `ast` module) were *all* already unused + workspace-wide, predating this session — removed all five. +- `coerce_untyped_int_expr`'s 9 near-identical per-primitive-type branches + (each: one upper-bound check, one diagnostic, one `expr.ty = X`) collapsed + into a single `match target_idx { .. } -> Option` lookup + one shared + check, once the u64-widening refactor made every branch structurally + identical (single-sided upper-bound only, `ty: target_idx` throughout). + +## 7. Found, discussed, deferred: memory-tag positions don't check the `Memory` bound + +`type Ptr = T::&u8;` — and more generally any `Mem::&T`/`Mem::*T`/`Mem::[T]` +syntax where the base is a bare, *unbounded* type param — type-checks with +zero errors. Pinned to `resolve_type`'s `ast::TypeExpression::MemoryTagged` +arm (`tir/builder.rs`, the block handling `Mem::&T`-shaped syntax): once the +memory-position expression resolves to a `Type::TypeParam` or +`Type::AssocTypeProjection`, the code accepts it unconditionally — + +```rust +match &self.tir.types[memory_ty.as_usize()] { + Type::Memory { .. } + | Type::TypeParam { .. } + | Type::AssocTypeProjection { .. } => {} + _ => { /* "not a memory declaration" */ } +}; +``` + +— with no check that the type param/projection is actually bounded by +`Memory`. Confirmed the *narrower*, explicitly-bounded case (`fn f(x: Mem::&u8)`) is *also* unchecked, not just the type-alias framing — +this is a general gap, not alias-specific. + +### Design work, not yet implemented + +First two attempts both tried to answer "how do we cheaply get `Memory`'s +`TraitIndex` inside this one check" and both were correctly pushed back on: + +1. Reuse the existing `#[tag = "..."]` / `tagged_items` mechanism + (`resolve_operator_trait`'s pattern). Rejected: that mechanism is only + safe because `resolve_operator_traits()` runs *once*, strictly after the + entire Phase 2 `ensure_signature` sweep completes — `tagged_items` is + populated as a side effect of `resolve_attributes`, itself only called + from inside `ensure_signature`. `resolve_type`'s `MemoryTagged` arm runs + *during* Phase 2, demand-driven, at unpredictable points — nothing + guarantees `Memory`'s own `ensure_signature` (and thus its tag) has run + yet when this check fires. +2. Resolve `"Memory"` by name at the check site itself, on every call, + caller-relative (`resolve_identifier_as_bound`, same mechanism a written + `T: Memory` bound would use). Correct, but reopened as "why does this + need to be a fallible per-call lookup at all" — pushed toward the actual + root cause instead of patching around it. + +**Landed on (design only — not implemented)**: `Memory`'s `TraitIndex` is a +well-known constant, exactly like the pre-interned `TypeIndex` table +(`TypeIndex::I32` etc.) already is — it should be resolved *once*, right +after Phase 1 pre-scan completes (traits get their `TraitIndex` slot +immediately in pre-scan, independent of `ensure_signature` — only their +*contents*, not their identity, need Phase 2), and cached as a plain +`Builder` field, not re-resolved per call site. `std`'s crate is +unambiguously identifiable (`load_stdlib()` always names it literally +`"std"`, `vfs/mod.rs:316`), and `build()` already builds a +`crate_namespaces: HashMap` during pre-scan — find +the `"std"`-named crate's namespace, look up `"Memory"` directly in *that* +namespace's own `symbols` map (no wildcard-import walk needed, it's declared +right there), store the resulting `TraitIndex` unconditionally (no `Option` +— a missing `Memory` trait in std at that point is a stdlib/compiler bug, +same invariant class `resolve_operator_trait` already leans on, just checked +one phase earlier). Every call site becomes a plain field read. + +A `#[tag = "memory"]` was added to `std/main.wx`'s `Memory` trait and a +`report_memory_tag_not_bounded` diagnostic function was drafted during the +false starts above — both **reverted** before committing, since neither is +needed for the landed design and leaving them in would just be inert, +half-wired dead code. `resolve_type`'s `MemoryTagged` handling is back to +byte-identical with pre-session `HEAD`. + +## Example: `examples/hashing/main.wx` + +New example modeled on Rust's `std::hash::{Hash, Hasher}` — `Hasher` +trait with a default `#[inline] fn hash` dispatcher, +`DefaultHasher` (real FNV-1a, not a stub), `Hash for i32`. This is what +surfaced bug 5 above; also deliberately keeps the unused +`type Ptr = T::&u8;` alias in place as a live, still-reproducing example +of the bug in §7. Verified end-to-end via `wasmtime` — `hash_i32(42)` / +`hash_i32(43)` / `hash_i32(0)` all match an independently-computed reference +FNV-1a (cross-checked in Python). Was originally added onto +`examples/compare/main.wx` (which had an unrelated `Ordering`/`Ord` sketch); +moved to its own file and the unrelated content dropped, since by the end it +had nothing to do with comparison. + +## State + +762 passed / 0 failed / 4 ignored. `cargo fmt --check` clean. `wx-cli`/`wx-fmt` +build clean. Snapshot diffs from the `u64` literal-width change are +offset/representation-only, verified before accepting. + +## Open questions / next up + +- Comparison operators (`==`/`<`/etc.) as overload traits — trait shape not + yet decided. +- §7 (memory-tag `Memory`-bound check) — design is settled, not implemented. +- `resolve_generic_compound_method`'s structurally-identical-but-currently-safe + gap (§5b) — no action needed unless an operator trait ever grows a method + with its own type params, which none currently do. diff --git a/devlog/index.md b/devlog/index.md index 6ec4dc2..970f182 100644 --- a/devlog/index.md +++ b/devlog/index.md @@ -1,8 +1,27 @@ # Session Index +## 2026-08-18 + +- [2026-08-18-bitwise-operators-enum-anchor-generic-trait-bugs.md](2026-08-18-bitwise-operators-enum-anchor-generic-trait-bugs.md) — Bitwise operator-overload traits (`BitAnd`/`BitOr`/`BitXor`/`Shl`/`Shr`/`BitNot`), same shape as the existing arithmetic traits; comparison operators explicitly deferred. Along the way: widened integer literals from `i64` to `u64` (fixed `i8::MIN`-class boundary bugs and `u64::MAX`/`i64::MIN` literals that couldn't be written at all, plus `eval_const_expr`'s Div/Rem signedness); enum variants now require an explicit anchor value before auto-increment is legal (new `E1071`, closes a real `Ordering { Less, Equal = 0, ... }` silent-collision bug); generic-bound dispatch for unary operators (`Neg`/`BitNot`) implemented, closing a gap `build_operator_dispatch` (binary) already didn't have. Two real bugs found via a new `Hasher`/`Hash` example (`examples/hashing/main.wx`): a trait-impl method with its own type params (independent of the impl block's) lost them entirely in TIR (`AstNodeRef::TraitImplFunction` hardcoded `type_params: Box::new([])`), and, once fixed, the identical shape crashed codegen via a MIR abstract-dispatch bug conflating "impl block is generic" with "impl's copy of the method is generic". Also swept up several genuinely-dead code paths (a provably-unreachable coercion arm, five fully-unused `ast::BinaryOp` predicate methods, a 130-line-to-30-line coercion collapse). Found but deliberately **not implemented**: memory-tag positions (`Mem::&T`) never check that `Mem` is actually bounded by `Memory` — design settled (resolve `Memory`'s `TraitIndex` once after Phase 1 pre-scan, like the pre-interned `TypeIndex` table, not per-call) but left for a future session + +## 2026-08-17 + +- [2026-08-17-compound-assignment-trait-dispatch-design.md](2026-08-17-compound-assignment-trait-dispatch-design.md) — Design-only: `+=`/etc. as sugar over resolved `Add`-style trait dispatch. Records the rejected shapes and why (full TIR-level `place = place.add(rhs)` desugar blocked by `Expression`/`Place` not being `Clone`, plus a confirmed pre-existing double-evaluation bug in `lower_compound_assignment`'s `Load{place}` handling independent of trait dispatch; a single `CompoundAssign` node with `Option` conflated "typeset-bounded" with "genuinely unsupported"; a target-kind split into `LocalSet`/`GlobalSet`/`FieldSet` left `FieldSet` depending on an invariant enforced elsewhere). Key insight: typeset-bounded (`Mem::Size`) and generic-not-yet-concrete (`T: Add`) are the same category — both resolve via monomorphization's existing substitution machinery, confirmed against how `GenericMethodCall` already resolves abstract trait methods at MIR-lowering time via `find_trait_impl`. Final design: new TIR-only `BinaryOp` excluding assignment operators, a new `Assign` node for plain `=`, and four compound-assignment nodes split two ways (resolved-now vs. deferred-to-monomorphization × plain-`Expression`-target vs. `Place`-target) — `CompoundAssign`/`GenericCompoundAssign`/`CompoundStore`/`GenericCompoundStore` +- [2026-08-17-compound-assignment-implementation-and-deferred-bugs.md](2026-08-17-compound-assignment-implementation-and-deferred-bugs.md) — Implemented the design above end to end (609/104 → 711/2 passing). Along the way: fixed `report_unused_items` firing on trait impl methods (reused the already-free `TypeParamOwner::TraitImpl(_)` signal, matching Rust); fixed `opt::tests::TestCase::get_first_func`'s stale "no stdlib" assumption via tag-based lookup, which led to the real bug — `extend_bindings`/`extend_bindings_in_place` unconditionally seeding default-value nodes for inlined-call scopes whose locals were already populated via `LocalSet`, fixed and independently adversarial-reviewed. That review surfaced two items, both since resolved: a chained-inlining flat-offset collision that silently clobbers a staged value with a sibling's (confirmed value-correctness bug via wasmtime, same root cause as `test_lerp`'s trap — fixed later the same day, see [2026-08-17-chained-inlining-offset-collision-fix.md](2026-08-17-chained-inlining-offset-collision-fix.md)), and `char` missing `impl Sub`/`impl Add` — resolved, not a gap: deliberately no impl at all, since unconstrained arithmetic could produce a `char` bit pattern outside the valid Unicode-scalar-value range with no checkpoint to reject it; arithmetic requires an explicit cast to an integer type and back, matching `std/main.wx`'s own `to_ascii_uppercase`/`to_ascii_lowercase` idiom +- [2026-08-17-chained-inlining-offset-collision-investigation.md](2026-08-17-chained-inlining-offset-collision-investigation.md) — Deep dive on the chained-inlining bug above: exact mechanism (`LocalSet` writes directly into a shared, mutating vector, unlike `Block`'s own clone-extend-discard, which is what makes `if`/`else`/`Aggregate`/etc. safe). Two fix candidates worked out: (1) stop `compute_locals_offsets` from sharing offsets between siblings at all — trivial, provably safe, zero cost since the vector it feeds is discarded before codegen, but felt like patching around the real problem rather than fixing it; (2) make `inline_call`'s own scope tree honestly reflect non-exclusive nesting. Within (2), a first attempt (thread scope through `Call`'s own arguments) is proven *insufficient* via a hand-traced counterexample (`test_lerp`'s `a + (b-a)*t` — three separate inlining sweeps, one per operator method, where an already-substituted `Block` from an earlier sweep still collides); a second attempt (chain onto whichever of the true call site or the globally-last-created scope has the larger occupied range) is hand-verified correct against both known failure shapes and needs no explicit threading at all. Neither implemented that day — user asked to stop and just record findings; everything reverted, back to pre-investigation baseline (715/2). Superseded by an even simpler fix, see below +- [2026-08-17-chained-inlining-offset-collision-fix.md](2026-08-17-chained-inlining-offset-collision-fix.md) — Fixed, later the same day, with a *different, simpler* design than either candidate above: instead of protecting a new per-call scope from colliding with a sibling's, stopped creating that scope at all — `inline_call` now appends the callee's own root-scope locals (its parameters, and any `local` it declares directly) onto the caller's *existing* scope at the call site, so a second inlined call there just gets index ranges past the first's, nothing to compare or protect (`Vec::push` can't collide with itself). The break-target wrapper scope still exists unconditionally but never holds locals, so it's always safe to parent at the call site directly. Generalized the pre-existing `Rebaser` (used elsewhere for combining globals' initializers into the start function) to cover both the new root-redirect case and the old plain-shift case, removing a duplicate tree-walk. One accepted regression: `opt::tests::test_simple_add` now produces one extra dead SSA node per inlined call at a function's root (root-scope default-seeding fires for locals inlining adds past the declared params) — harmless (reused via CSE, doesn't affect WASM output), test updated rather than fixed. Also checked and ruled out (with a new empirical regression test, not just on paper) whether `MIR::build_start_function`'s globals-combining shares the same bug shape — it doesn't, because each global's init is always a self-contained `Block` value routed through the same clone-then-discard mechanism that makes `if`/`else` safe. 732 passed / 0 failed + +## 2026-08-16 + +- [2026-08-16-pointer-reference-split-design.md](2026-08-16-pointer-reference-split-design.md) — Design-only: replace pointer/slice/array `mutable: bool` with exclusive/shared kind (`*T`/`&T`, `*[T]`/`&[T]`, `*[T; N]`/`&[T; N]`), no move-checking/`Drop`/lifetimes; AST/TIR stay flat so `[T]`/`[T; N]` can never appear bare; postfix `.&`/`.*` kept, `.&mut` dropped entirely and `.&` never produces `*T` (rejected a context-elaborated exclusive `.&` as reintroducing Rust's reborrow problem); the one real call site needing it (`wasi_preview1_port`'s union simulation) solved via a null-pointer `offsetof` idiom using only existing operators, no new intrinsic; surfaced and deferred a much bigger feature, a WIT-style `variant` item (payload-carrying tagged union, compiler-assigned tags) plus real `match` destructuring, as the actual long-term fix +- [2026-08-16-primitives-as-items-and-use-scoping.md](2026-08-16-primitives-as-items-and-use-scoping.md) — Primitives turned into real `#[intrinsic] pub type X;` items (DefId, LSP go-to-def/hover) instead of a hardcoded string match; unrelated `wx-fmt` bug found (`impl` block `pub const` silently lost `pub`, broke ~100 tests); investigating "std auto-imported everywhere" surfaced that a root-level `use X::*;` is currently crate-wide in wx, not per-file like Rust — `lookup_global_symbol`'s ancestor-walk conflates privacy-ancestry with import-lookup, confirmed empirically via a multi-file probe; also found duplicate inherent-impl members (e.g. two `impl f32 { const PI }`) are only ever caught at first use, or not at all if unused — both noted as their own future tasks, not fixed today +- [2026-08-16-generic-typeparam-arithmetic-gap.md](2026-08-16-generic-typeparam-arithmetic-gap.md) — Found while adding `ptr::align_up`: two gaps in operator support for typeset-bounded types. Deferred: bare type params bounded directly by a typeset (``) don't support operators at all (only concrete primitives and `AssocTypeProjection`s like `Mem::Size` do) — `align_up` shipped bounded by `Mem: Memory` over `Mem::Size` instead, matching the rest of the `ptr` module. Fixed: unary `^`/`-` on an `AssocTypeProjection` crashed the compiler outright (raw `panic!`, not a diagnostic) and binary bitwise ops on the same shape failed to type-check — both fixed by extracting a shared `is_typeset_bounded_assoc_type` primitive and composing it at all four operator-checking call sites, replacing the panic with a real diagnostic +- [2026-08-16-inline-intrinsic-call-graph-bug.md](2026-08-16-inline-intrinsic-call-graph-bug.md) — Pre-existing crash (confirmed via `git stash` against unmodified `develop`, using only `f32_sqrt`): an `#[inline]` function calling an `#[intrinsic]` function panics `mir/inlining.rs`'s Kahn-queue pass, because resolving a bare function-value reference (`tir::ExprKind::Function { id }`, on the path to every call) unconditionally recorded a call-graph edge with no intrinsic check, unlike the other three call-dispatch arms — fixed with a new `is_intrinsic` guard, plus a second independent gap where ordinary (non-method, non-generic) calls never recorded an edge at all. Surfaced by the new operator-overloading primitive impls (`impl Add for i32`-style, all `#[inline]`, all calling a raw intrinsic). Considered and rejected making intrinsics real `#[inline]` `mir::Function`s instead (no performance win — eager substitution is already stronger than `#[inline]`; would need new monomorphization machinery for generic intrinsics) + ## 2026-08-11 - [2026-08-11-ownership-borrowing-allocator-design.md](2026-08-11-ownership-borrowing-allocator-design.md) — Design-only discussion: owned/borrowed (no `&mut`) ownership model reusing existing `*T`/`*mut T`/`[]T`/`[N]T` syntax, scope-based lifetime inference deferred `'a` syntax, manual-vs-automatic cleanup unified via a minimal opt-in `Drop` trait, and an open allocator-identity problem (memory tag ≠ allocator; bump/arena allocators need arena-scoped escape checks instead of per-object `Drop`) +- [2026-08-11-ownership-implementation-strategy.md](2026-08-11-ownership-implementation-strategy.md) — Follow-up: checking belongs at TIR (not MIR) since control flow, `Place`/`PlaceKind`, per-binding use-lists, and scope-parent chains already exist there pre-monomorphization; move-vs-Copy resolved as a transitive-affine rule (`*T` itself, or transitively via inline fields, or explicit `impl Drop`) with `&T` as Copy but still scope-checked per copy ## 2026-07-21 diff --git a/doom/itoa.wx b/doom/itoa.wx index 60084a4..81fd3ad 100644 --- a/doom/itoa.wx +++ b/doom/itoa.wx @@ -4,15 +4,15 @@ use std::*; memory heap: Memory where { Size = u32 }; import "console" as console { - fn log(message: heap::[]u8); + fn log(message: heap::&[u8]); } // ── bump allocator ──────────────────────────────────────────────────────────── global mut bump: heap::*u8 = heap::DATA_END; -fn alloc_bytes(size: u32, align: u32) -> heap::*mut u8 { - local ptr = (bump as u32 + align - 1) / align * align; +fn alloc_bytes(size: u32, align: u32) -> heap::*u8 { + local ptr = ptr::align_up::(bump as u32, align); local new_end = ptr + size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -20,10 +20,10 @@ fn alloc_bytes(size: u32, align: u32) -> heap::*mut u8 { _ = heap.grow(needed); } bump = new_end as heap::*u8; - ptr as heap::*mut u8 + ptr as heap::*u8 } -fn alloc_array(count: u32) -> heap::*mut T { +fn alloc_array(count: u32) -> heap::*T { alloc_bytes(size_of::() * count, align_of::()) as _ } @@ -34,9 +34,9 @@ pub fn reset() { // ── integer -> string conversion ────────────────────────────────────────────── -fn itoa(value: i32) -> heap::[]u8 { - local buf: heap::*mut u8 = alloc_array::(12); - local mut ptr: heap::*mut u8 = buf; +fn itoa(value: i32) -> heap::&[u8] { + local buf: heap::*u8 = alloc_array::(12); + local mut ptr: heap::*u8 = buf; local mut len: u32 = 0; local mut x: i64 = i64_extend_i32(value); diff --git a/doom/m.wx b/doom/m.wx index 97e79e4..131e4a0 100644 --- a/doom/m.wx +++ b/doom/m.wx @@ -22,7 +22,7 @@ impl Layout { trait Allocator { type M: Memory; - fn alloc(self: Self::M::*mut Self, layout: Layout) -> *mut u8; + fn alloc(self: Self::M::*Self, layout: Layout) -> *u8; } struct BumpAllocator { @@ -40,9 +40,8 @@ impl BumpAllocator { impl Allocator for BumpAllocator { type M = heap; - fn alloc(self: Self::M::*mut Self, layout: Layout) -> *mut u8 { - local align_mask = layout.align - 1; - local start = (self.*.bump + align_mask) & ^align_mask; + fn alloc(self: Self::M::*Self, layout: Layout) -> *u8 { + local start = ptr::align_up::(self.*.bump, layout.align); // 2. Calculate the end address of this allocation local end = start + layout.size; @@ -77,8 +76,8 @@ fn main() { // ── bump allocator ──────────────────────────────────────────────────────────── global mut bump: heap::*u8 = heap::DATA_END; -fn alloc_bytes(size: u32, align: u32) -> heap::*mut u8 { - local ptr = (bump as u32 + align - 1) / align * align; +fn alloc_bytes(size: u32, align: u32) -> heap::*u8 { + local ptr = ptr::align_up::(bump as u32, align); local new_end = ptr + size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -86,10 +85,10 @@ fn alloc_bytes(size: u32, align: u32) -> heap::*mut u8 { _ = heap.grow(needed); } bump = new_end as heap::*u8; - ptr as heap::*mut u8 + ptr as heap::*u8 } -fn alloc_array(count: u32) -> heap::*mut T { +fn alloc_array(count: u32) -> heap::*T { alloc_bytes(size_of::() * count, align_of::()) as _ } @@ -99,7 +98,7 @@ pub fn reset() { // ── Vec ──────────────────────────────────────────────────────────────────── struct Vec { - buf: heap::*mut T, + buf: heap::*T, len: u32, cap: u32, } @@ -111,15 +110,15 @@ impl Vec { } // Appends a value; grows the buffer if needed (doubles capacity each time). - pub fn push(self: heap::*mut Self, value: T) { + pub fn push(self: heap::*Self, value: T) { if self.*.len == self.*.cap { local new_cap = if self.*.cap == 0 { 4 } else { self.*.cap * 2 }; local new_buf = alloc_array::(new_cap); if self.*.cap != 0 { local bytes = self.*.len * size_of::(); memory_copy( - new_buf as heap::*mut u8, - self.*.buf as heap::*u8, + new_buf as heap::*u8, + self.*.buf as heap::&u8, bytes, ); }; @@ -131,13 +130,13 @@ impl Vec { } // Removes and returns the last element. Caller must ensure len > 0. - pub fn pop(self: heap::*mut Self) -> T { + pub fn pop(self: heap::*Self) -> T { self.*.len -= 1; ptr::add(self.*.buf, self.*.len).* } // Removes the element at index, shifting everything after it left. O(n). - pub fn remove(self: heap::*mut Self, index: u32) -> T { + pub fn remove(self: heap::*Self, index: u32) -> T { local val = ptr::add(self.*.buf, index).*; local mut i: u32 = index; loop { @@ -150,7 +149,7 @@ impl Vec { } // Removes the element at index by swapping it with the last. O(1), no order. - pub fn swap_remove(self: heap::*mut Self, index: u32) -> T { + pub fn swap_remove(self: heap::*Self, index: u32) -> T { local val = ptr::add(self.*.buf, index).*; self.*.len -= 1; if index != self.*.len { @@ -160,44 +159,44 @@ impl Vec { val } - pub fn get(self: heap::*Self, index: u32) -> T { + pub fn get(self: heap::&Self, index: u32) -> T { ptr::add(self.*.buf, index).* } - pub fn set(self: heap::*mut Self, index: u32, value: T) { + pub fn set(self: heap::*Self, index: u32, value: T) { ptr::add_mut(self.*.buf, index).* = value; } - pub fn swap(self: heap::*mut Self, a: u32, b: u32) { + pub fn swap(self: heap::*Self, a: u32, b: u32) { local tmp = ptr::add(self.*.buf, a).*; ptr::add_mut(self.*.buf, a).* = ptr::add(self.*.buf, b).*; ptr::add_mut(self.*.buf, b).* = tmp; } - pub fn first(self: heap::*Self) -> T { + pub fn first(self: heap::&Self) -> T { self.*.buf.* } - pub fn last(self: heap::*Self) -> T { + pub fn last(self: heap::&Self) -> T { ptr::add(self.*.buf, self.*.len - 1).* } - pub fn clear(self: heap::*mut Self) { + pub fn clear(self: heap::*Self) { self.*.len = 0; } #[inline] - pub fn len(self: heap::*Self) -> u32 { + pub fn len(self: heap::&Self) -> u32 { self.*.len } #[inline] - pub fn cap(self: heap::*Self) -> u32 { + pub fn cap(self: heap::&Self) -> u32 { self.*.cap } #[inline] - pub fn is_empty(self: heap::*Self) -> bool { + pub fn is_empty(self: heap::&Self) -> bool { self.*.len == 0 } } @@ -207,11 +206,6 @@ pub fn demo() -> i32 { local vec = alloc_array::>(1); vec.* = Vec::new(); - // &[1, 2, 3] - // &mut [1, 2, 3] - // [1, 2, 3].&mut - // Point::{ x: 1, y: 1, z: 1 }.&mut - // object.*.field.&mut vec.push(10); vec.push(20); vec.push(30); diff --git a/doom/main.wx b/doom/main.wx index 1d3bec4..1954fa4 100644 --- a/doom/main.wx +++ b/doom/main.wx @@ -5,7 +5,7 @@ memory heap: Memory where { Size = u32 }; trait Allocator { type M: Memory; - fn alloc(self: Self::M::*mut Self, layout: Layout) -> *mut u8; + fn alloc(self: Self::M::*Self, layout: Layout) -> *u8; } struct BumpAllocator { @@ -23,9 +23,8 @@ impl BumpAllocator { impl Allocator for BumpAllocator { type M = heap; - fn alloc(self: Self::M::*mut Self, layout: Layout) -> *mut u8 { - local align_mask = layout.align - 1; - local start = (self.*.bump + align_mask) & ^align_mask; + fn alloc(self: Self::M::*Self, layout: Layout) -> *u8 { + local start = ptr::align_up::(self.*.bump, layout.align); // 2. Calculate the end address of this allocation local end = start + layout.size; @@ -53,15 +52,15 @@ impl Allocator for BumpAllocator { } fn main() { - local bump: *mut BumpAllocator = unreachable; + local bump: *BumpAllocator = unreachable; local ptr = bump.alloc(Layout::{ size: 4, align: 1 }); } // ── bump allocator ──────────────────────────────────────────────────────────── global mut bump: heap::*u8 = heap::DATA_END; -fn alloc_bytes(size: u32, align: u32) -> heap::*mut u8 { - local ptr = (bump as u32 + align - 1) / align * align; +fn alloc_bytes(size: u32, align: u32) -> heap::*u8 { + local ptr = ptr::align_up::(bump as u32, align); local new_end = ptr + size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -69,10 +68,10 @@ fn alloc_bytes(size: u32, align: u32) -> heap::*mut u8 { _ = heap.grow(needed); } bump = new_end as heap::*u8; - ptr as heap::*mut u8 + ptr as heap::*u8 } -fn alloc_array(count: u32) -> heap::*mut T { +fn alloc_array(count: u32) -> heap::*T { alloc_bytes(size_of::() * count, align_of::()) as _ } @@ -82,7 +81,7 @@ pub fn reset() { // ── Vec ──────────────────────────────────────────────────────────────────── struct Vec { - buf: heap::*mut T, + buf: heap::*T, len: u32, cap: u32, } @@ -94,15 +93,15 @@ impl Vec { } // Appends a value; grows the buffer if needed (doubles capacity each time). - pub fn push(self: heap::*mut Self, value: T) { + pub fn push(self: heap::*Self, value: T) { if self.*.len == self.*.cap { local new_cap = if self.*.cap == 0 { 4 } else { self.*.cap * 2 }; local new_buf = alloc_array::(new_cap); if self.*.cap != 0 { local bytes = self.*.len * size_of::(); memory_copy( - new_buf as heap::*mut u8, - self.*.buf as heap::*u8, + new_buf as heap::*u8, + self.*.buf as heap::&u8, bytes, ); }; @@ -114,13 +113,13 @@ impl Vec { } // Removes and returns the last element. Caller must ensure len > 0. - pub fn pop(self: heap::*mut Self) -> T { + pub fn pop(self: heap::*Self) -> T { self.*.len -= 1; ptr::add(self.*.buf, self.*.len).* } // Removes the element at index, shifting everything after it left. O(n). - pub fn remove(self: heap::*mut Self, index: u32) -> T { + pub fn remove(self: heap::*Self, index: u32) -> T { local val = ptr::add(self.*.buf, index).*; local mut i: u32 = index; loop { @@ -133,7 +132,7 @@ impl Vec { } // Removes the element at index by swapping it with the last. O(1), no order. - pub fn swap_remove(self: heap::*mut Self, index: u32) -> T { + pub fn swap_remove(self: heap::*Self, index: u32) -> T { local val = ptr::add(self.*.buf, index).*; self.*.len -= 1; if index != self.*.len { @@ -143,45 +142,45 @@ impl Vec { val } - pub fn get(self: heap::*Self, index: u32) -> T { + pub fn get(self: heap::&Self, index: u32) -> T { ptr::add(self.*.buf, index).* } - pub fn set(self: heap::*mut Self, index: u32, value: T) { + pub fn set(self: heap::*Self, index: u32, value: T) { ptr::add_mut(self.*.buf, index).* = value; } - pub fn swap(self: heap::*mut Self, a: u32, b: u32) { + pub fn swap(self: heap::*Self, a: u32, b: u32) { local tmp = ptr::add(self.*.buf, a).*; ptr::add_mut(self.*.buf, a).* = ptr::add(self.*.buf, b).*; ptr::add_mut(self.*.buf, b).* = tmp; } - pub fn first(self: heap::*Self) -> T { + pub fn first(self: heap::&Self) -> T { self.*.buf.* } - pub fn last(self: heap::*Self) -> T { + pub fn last(self: heap::&Self) -> T { ptr::add(self.*.buf, self.*.len - 1).* } - pub fn clear(self: heap::*mut Self) { + pub fn clear(self: heap::*Self) { self.*.len = 0; } #[inline] - pub fn len(self: heap::*Self) -> u32 { + pub fn len(self: heap::&Self) -> u32 { self.*.len // hello world } #[inline] - pub fn cap(self: heap::*Self) -> u32 { + pub fn cap(self: heap::&Self) -> u32 { self.*.cap } #[inline] - pub fn is_empty(self: heap::*Self) -> bool { + pub fn is_empty(self: heap::&Self) -> bool { self.*.len == 0 } } @@ -191,11 +190,6 @@ pub fn demo() -> i32 { local vec = alloc_array::>(1); vec.* = Vec::new(); - // &[1, 2, 3] - // &mut [1, 2, 3] - // [1, 2, 3].&mut - // Point::{ x: 1, y: 1, z: 1 }.&mut - // object.*.field.&mut vec.push(10); vec.push(20); vec.push(30); diff --git a/examples/arena/main.wx b/examples/arena/main.wx index 29f3dea..f684076 100644 --- a/examples/arena/main.wx +++ b/examples/arena/main.wx @@ -1,13 +1,13 @@ use std::*; -struct Arena { - start: M::*u8, - end: M::*u8, - cursor: M::*u8, +struct Arena { + start: Mem::&u8, + end: Mem::&u8, + cursor: Mem::&u8, } -impl Arena { - fn new(buffer: M::[]u8) -> Self { +impl Arena { + fn new(buffer: Mem::&[u8]) -> Self { Self::{ start: buffer.ptr(), end: ptr::add(buffer.ptr(), buffer.len()), @@ -15,3 +15,11 @@ impl Arena { } } } + +impl f32 { + const PI: f32 = 3.14; +} + +fn test() { + local x = f32::PI; +} diff --git a/examples/bump_allocator/bump_allocator.wx b/examples/bump_allocator/bump_allocator.wx deleted file mode 100644 index 79cdd1a..0000000 --- a/examples/bump_allocator/bump_allocator.wx +++ /dev/null @@ -1,90 +0,0 @@ -// Bump allocator — the simplest possible dynamic memory allocator. -// -// Strategy: maintain a `bump` pointer that starts right after static data -// (heap::DATA_END) and advances with every allocation. There is no free — -// only reset. Pages are grown on demand. -// -// Allocation layout (example — no free, sequential): -// -// ┌──────────────┬──────────┬──────────┬──────────┬────── ·· ─┐ -// │ static data │ alloc 0 │ alloc 1 │ alloc 2 │ (free) │ -// └──────────────┴──────────┴──────────┴──────────┴────── ·· ─┘ -// 0 DATA_END bump heap end - -// start with one 64 KiB page -#[memory_limits(min_pages = 1)] -memory heap: Memory where { Size = u32 }; - -// ── allocator state ─────────────────────────────────────────────────────────── - -global mut bump: heap::*u8 = heap::DATA_END; - -// ── core allocator ──────────────────────────────────────────────────────────── - -// Allocates space for one T, respecting its alignment. -pub fn alloc() -> heap::*mut T { - local align = @align_of::(); - local ptr = (bump as u32 + align - 1) / align * align; - local new_end = ptr + @size_of::(); - local cur_end = heap.size() * PAGE_SIZE; - if new_end > cur_end { - local needed = (new_end - cur_end + PAGE_SIZE - 1) / PAGE_SIZE; - local _grew = heap.grow(needed); - } - bump = new_end as heap::*u8; - ptr as heap::*mut T -} - -pub fn reset() { - bump = heap::DATA_END -} - -pub fn bytes_used() -> u32 { - bump as u32 -} - -// ── linked list ─────────────────────────────────────────────────────────────── - -struct Node { - value: i32, - next: heap::*Node, // ptr::null() when there is no next node -} - -pub fn node_new(value: i32, next: heap::*Node) -> heap::*Node { - local n: heap::*mut Node = alloc::(); - n.* = Node::{ value: value, next: next }; - n -} - -pub fn node_value(n: heap::*Node) -> i32 { - n.*.value -} - -pub fn node_next(n: heap::*Node) -> heap::*Node { - n.*.next -} - -// ── demo entry point ────────────────────────────────────────────────────────── - -// Builds the list 3 → 2 → 1 and returns the sum of all node values. -pub fn demo() -> i32 { - local n1 = node_new(1, ptr::null()); - local n2 = node_new(2, n1); - local n3 = node_new(3, n2); - - local mut sum: i32 = 0; - local mut cur: heap::*Node = n3; - loop { - if cur == ptr::null() { break sum }; - local node = cur.*; - sum += node.value; - cur = node.next; - } -} - -export { - heap as "memory", - reset, - bytes_used, - demo, -} diff --git a/examples/bump_allocator/main.wx b/examples/bump_allocator/main.wx index 453554b..2aedf18 100644 --- a/examples/bump_allocator/main.wx +++ b/examples/bump_allocator/main.wx @@ -16,65 +16,61 @@ use std::*; memory heap: Memory where { Size = u32 }; // start with one 64 KiB page // ── allocator state ─────────────────────────────────────────────────────────── -global mut bump: heap::*u8 = heap::DATA_END; +// Starts at 4, not `heap::DATA_END` — this example never emits static data, +// so `DATA_END` is 0, and address 0 is bit-identical to `ptr::null()`. A +// real allocation landing there would get misread as null by any +// `== ptr::null()` check, so `bump` starts one word past it instead. +global mut bump: heap::*u8 = 4 as heap::*u8; // ── core allocator ──────────────────────────────────────────────────────────── // Allocates space for one T, respecting its alignment. -pub fn alloc() -> heap::*mut T { - local align = @align_of::(); - local ptr = (bump as u32 + align - 1) / align * align; - local new_end = ptr + @size_of::(); +pub fn alloc() -> heap::*T { + local align = align_of::(); + local ptr = ptr::align_up::(bump as u32, align); + local new_end = ptr + size_of::(); local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { local needed = (new_end - cur_end + PAGE_SIZE - 1) / PAGE_SIZE; local _grew = heap.grow(needed); } bump = new_end as heap::*u8; - ptr as heap::*mut T + ptr as heap::*T } pub fn reset() { - bump = heap::DATA_END + bump = 4 as heap::*u8 } pub fn bytes_used() -> u32 { bump as u32 } -// ── linked list ─────────────────────────────────────────────────────────────── struct Node { value: i32, - next: heap::*Node, + next: &Node, } -pub fn node_new(value: i32, next: heap::*Node) -> heap::*Node { - local n: heap::*mut Node = alloc::(); - n.* = Node::{ value: value, next: next }; - n -} - -pub fn node_value(n: heap::*Node) -> i32 { - n.*.value -} - -pub fn node_next(n: heap::*Node) -> heap::*Node { - n.*.next +impl Node { + pub fn new(value: i32, next: &Node) -> &Node { + local n = alloc::(); + n.* = Node::{ value: value, next: next }; + n + } } // ── demo entry point ────────────────────────────────────────────────────────── // Builds the list 3 → 2 → 1 and returns the sum of all node values. pub fn demo() -> i32 { - local n1 = node_new(1, ptr::null()); - local n2 = node_new(2, n1); - local n3 = node_new(3, n2); + local n1 = Node::new(1, ptr::null()); + local n2 = Node::new(2, n1); + local n3 = Node::new(3, n2); local mut sum: i32 = 0; - local mut cur: heap::*Node = n3; + local mut cur: &Node = n3; loop { if cur == ptr::null() { break sum }; - local node = cur.*; - sum += node.value; - cur = node.next; + sum += cur.*.value; + cur = cur.*.next; } } diff --git a/examples/compare/main.wx b/examples/compare/main.wx deleted file mode 100644 index 3cd1811..0000000 --- a/examples/compare/main.wx +++ /dev/null @@ -1,9 +0,0 @@ -enum Ordering: i8 { - Less = -1, - Equal = 0, - Greater = 1, -} - -trait Ord { - fn cmp(self, other: Self) -> Ordering; -} diff --git a/examples/fibonacci/main.wx b/examples/fibonacci/main.wx index aec242f..4e705c0 100644 --- a/examples/fibonacci/main.wx +++ b/examples/fibonacci/main.wx @@ -2,7 +2,7 @@ use std::*; memory heap: Memory where { Size = u32 }; import "console" as console { - fn log(message: heap::[]u8); + fn log(message: &[u8]); } fn fibonacci(n: i32) -> i32 { diff --git a/examples/func_pointers/main.wx b/examples/func_pointers/main.wx index f6df4a3..7cc43c7 100644 --- a/examples/func_pointers/main.wx +++ b/examples/func_pointers/main.wx @@ -1,3 +1,5 @@ +use std::*; + fn add(a: i32, b: i32) -> i32 { a + b } diff --git a/examples/hashing/main.wx b/examples/hashing/main.wx new file mode 100644 index 0000000..1ee6113 --- /dev/null +++ b/examples/hashing/main.wx @@ -0,0 +1,90 @@ +use std::*; + +trait Hasher { + fn write(self: Mem::*Self, bytes: Mem::&[u8]); + + fn finish(self) -> u64; + + #[inline] + fn hash(self: Mem::*Self, value: Mem::&T) { + value.hash(self); + } +} + +type Ptr = T::&u8; + +// FNV-1a: https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function +const FNV_OFFSET_BASIS: u64 = 14695981039346656037; +const FNV_PRIME: u64 = 1099511628211; + +struct DefaultHasher { + value: u64, +} + +impl DefaultHasher { + pub fn new() -> Self { + Self::{ value: FNV_OFFSET_BASIS } + } +} + +impl Hasher for DefaultHasher { + fn write(self: Mem::*Self, bytes: Mem::&[u8]) { + local mut i: Mem::Size = 0; + loop { + if i == bytes.len() { break }; + self.*.value + = (self.*.value ^ u64_extend_u32(bytes[i] as u32)) * FNV_PRIME; + i += 1; + }; + } + + fn finish(self) -> u64 { + self.value + } +} + +trait Hash { + fn hash(self: Mem::&Self, state: Mem::*H); +} + +impl Hash for i32 { + fn hash(self: Mem::&Self, state: Mem::*H) { + local bytes = + slice_from_parts::(self as Mem::&u8, size_of::()); + state.write(bytes); + } +} + +memory heap: Memory where { Size = u32 }; +global mut bump: heap::*u8 = heap::DATA_END; + +struct BumpAllocator {} + +impl Allocator for BumpAllocator { + type Mem = heap; + + fn reserve(self: heap::*Self, layout: Layout) -> heap::*u8 { + local ptr = ptr::align_up::(bump as u32, layout.align); + local new_end = ptr + layout.size; + local cur_end = heap.size() * PAGE_SIZE; + if new_end > cur_end { + local needed = (new_end - cur_end + PAGE_SIZE - 1) / PAGE_SIZE; + if heap.grow(needed) == -1 { unreachable } + } + bump = new_end as heap::*u8; + ptr as heap::*u8 + } +} + +fn hash_i32(value: i32) -> u64 { + local bump: heap::*BumpAllocator = ptr::null_mut(); + local value = bump.alloc(value); + local hasher = bump.alloc(DefaultHasher::new()); + hasher.hash(value); + hasher.*.finish() +} + +export { + heap as "memory", + hash_i32, +} diff --git a/examples/main.txt b/examples/main.txt deleted file mode 100644 index c94d492..0000000 --- a/examples/main.txt +++ /dev/null @@ -1,23 +0,0 @@ -trait Soo {} - -trait Koo {} - -trait X { - type Y: Soo + Koo; -} - -struct Foo { - b: i32, -} - -fn x(t: T) -> T::Y { - :: -} - -type O = fn()! -> never; - -struct Bar {} - -impl X for Bar { - type Y = Foo; -} diff --git a/examples/main.wx b/examples/main.wx new file mode 100644 index 0000000..7568671 --- /dev/null +++ b/examples/main.wx @@ -0,0 +1,18 @@ +fn trap() does(trap) -> (); + +fn read() does(read) -> (); +fn write() does(write) -> (); +fn grow() does(read, grow) -> (); + +fn transacts() does(read, write, grow) -> (); + +fn add(a: i32, b: i32)<_> -> i32; +fn sub(a: i32, b: i32)<_> -> i32; +fn mul(a: i32, b: i32)<_> -> i32; +fn div(a: i32, b: i32) -> i32; +fn alloc(size: u32)<*> -> u32; + +fn add(a: i32, b: i32) does() -> i32; +fn sub(a: i32, b: i32) does() -> i32; +fn mul(a: i32, b: i32) does() -> i32; +fn div(a: i32, b: i32) does(trap) -> i32; \ No newline at end of file diff --git a/examples/pow/main.wx b/examples/pow/main.wx index 0377413..14548d7 100644 --- a/examples/pow/main.wx +++ b/examples/pow/main.wx @@ -1,9 +1,11 @@ +use std::*; + fn pow(base: i32, mut exp: i32) -> i32 { if exp < 0 { return 0 }; local mut result: i32 = 1; - b: loop { - if exp == 0 { break :b result }; + loop { + if exp == 0 { break result }; result *= base; exp -= 1; } diff --git a/examples/raycaster/main.wx b/examples/raycaster/main.wx index e088d35..52f4c1c 100644 --- a/examples/raycaster/main.wx +++ b/examples/raycaster/main.wx @@ -38,7 +38,11 @@ fn sin_poly(y: f64) -> f64 { pub fn wx_sin(x: f64) -> f64 { local half_pi = f64::PI / 2.0; local mut q = reduce(x); - if q > half_pi { q = f64::PI - q; } else { if q < -half_pi { q = -f64::PI - q; }; }; + if q > half_pi { + q = f64::PI - q; + } else { + if q < -half_pi { q = -f64::PI - q; }; + }; sin_poly(q) } @@ -54,7 +58,7 @@ pub fn wx_cos(x: f64) -> f64 { // `frame()` call. global mut map_w: u32 = 0; global mut map_h: u32 = 0; -global mut map_data: heap::*mut u8 = ptr::null_mut(); +global mut map_data: heap::&u8 = ptr::null_mut(); pub fn map_ptr() -> i32 { map_data as i32 @@ -107,8 +111,8 @@ pub fn load_map(w: i32, h: i32) { // ── bump allocator (same pattern as examples/snake) ─────────────────────────── global mut bump: heap::*u8 = heap::DATA_END; -fn alloc_bytes(size: u32, align: u32) -> heap::*mut u8 { - local ptr = (bump as u32 + align - 1) / align * align; +fn alloc_bytes(size: u32, align: u32) -> heap::*u8 { + local ptr = ptr::align_up::(bump as u32, align); local new_end = ptr + size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -116,11 +120,11 @@ fn alloc_bytes(size: u32, align: u32) -> heap::*mut u8 { _ = heap.grow(needed); }; bump = new_end as heap::*u8; - ptr as heap::*mut u8 + ptr as heap::*u8 } // ── framebuffer ──────────────────────────────────────────────────────────── -global mut fb_ptr: heap::*mut u8 = ptr::null_mut(); +global mut fb_ptr: heap::*u8 = ptr::null_mut(); pub fn framebuffer_ptr() -> i32 { fb_ptr as i32 @@ -153,12 +157,12 @@ fn cast_ray(ox: f64, oy: f64, angle: f64) -> RayHit { local mut map_x = i32_trunc_f64(f64_floor(ox)); local mut map_y = i32_trunc_f64(f64_floor(oy)); - + local mut delta_dist_x: f64 = 1000000000000.0; local mut delta_dist_y: f64 = 1000000000000.0; if dir_x != 0.0 { delta_dist_x = f64_abs(1.0 / dir_x) } if dir_y != 0.0 { delta_dist_y = f64_abs(1.0 / dir_y) } - + local mut step_x: i32 = 0; local mut step_y: i32 = 0; local mut side_dist_x: f64 = 0.0; @@ -211,25 +215,25 @@ pub fn render() { local mut x: i32 = 0; loop { if x >= SCREEN_W { break }; - + local t = f64_convert_i32(x) / f64_convert_i32(SCREEN_W); local ray_angle = player_angle - FOV / 2.0 + FOV * t; local hit = cast_ray(player_x, player_y, ray_angle); local corrected = hit.dist * wx_cos(ray_angle - player_angle); - + local mut line_height = SCREEN_H; if corrected > 0.0001 { line_height = i32_trunc_f64(f64_convert_i32(SCREEN_H) / corrected); }; - + local mut draw_start = SCREEN_H / 2 - line_height / 2; local mut draw_end = SCREEN_H / 2 + line_height / 2; if draw_start < 0 { draw_start = 0; }; if draw_end >= SCREEN_H { draw_end = SCREEN_H - 1; }; - + local mut shade: u8 = 200; if hit.side == 1 { shade = 140; }; - + local mut y: i32 = 0; loop { if y >= SCREEN_H { break }; @@ -253,22 +257,22 @@ pub fn update(dt_ms: i64) { local dt = f64_convert_i64(dt_ms) / 1000.0; local mut forward: f64 = 0.0; local mut strafe: f64 = 0.0; - + if host::key_down(87) != 0 { forward += 1.0; }; if host::key_down(83) != 0 { forward -= 1.0; }; if host::key_down(68) != 0 { strafe += 1.0; }; if host::key_down(65) != 0 { strafe -= 1.0; }; if host::key_down(39) != 0 { player_angle += ROT_SPEED * dt; }; if host::key_down(37) != 0 { player_angle -= ROT_SPEED * dt; }; - + local dir_x = wx_cos(player_angle); local dir_y = wx_sin(player_angle); local perp_x = -dir_y; local perp_y = dir_x; - + local nx = player_x + (dir_x * forward + perp_x * strafe) * MOVE_SPEED * dt; local ny = player_y + (dir_y * forward + perp_y * strafe) * MOVE_SPEED * dt; - + if !is_wall(nx, player_y) { player_x = nx; }; if !is_wall(player_x, ny) { player_y = ny; }; } diff --git a/examples/snake/main.wx b/examples/snake/main.wx index 61c407f..31be0db 100644 --- a/examples/snake/main.wx +++ b/examples/snake/main.wx @@ -4,9 +4,9 @@ memory heap: Memory where { Size = u32 }; global mut bump: heap::*u8 = heap::DATA_END; -pub fn alloc() -> heap::*mut T { +pub fn alloc() -> heap::*T { local align = align_of::(); - local ptr = (bump as u32 + align - 1) / align * align; + local ptr = ptr::align_up::(bump as u32, align); local new_end = ptr + size_of::(); local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -43,18 +43,18 @@ const STEP_MS: i64 = 120; struct Node { x: i32, y: i32, - next: heap::*mut Node, + next: heap::*Node, } -global mut head: heap::*mut Node = ptr::null_mut(); +global mut head: heap::*Node = ptr::null_mut(); global mut len: i32 = 0; global mut dir: i32 = 0; global mut food_x: i32 = 16; global mut food_y: i32 = 12; global mut acc_ms: i64 = 0; -pub fn node_new(value_x: i32, value_y: i32, next: heap::*mut Node) -> heap::*mut Node { - local n: heap::*mut Node = alloc::(); +pub fn node_new(value_x: i32, value_y: i32, next: heap::*Node) -> heap::*Node { + local n: heap::*Node = alloc::(); n.* = Node::{ x: value_x, y: value_y, next: next }; n } @@ -71,7 +71,7 @@ pub fn pop_back() { len = 0; return; } - local mut cur = head as *mut Node; + local mut cur = head as *Node; loop { local mut n = cur.*; if ptr::is_null(n.next.*.next) { @@ -85,7 +85,7 @@ pub fn pop_back() { } pub fn contains(x: i32, y: i32) -> bool { - local mut cur: *Node = head; + local mut cur: &Node = head; loop { if ptr::is_null(cur) { break false } local n = cur.*; @@ -171,7 +171,7 @@ pub fn draw() { 0xFFFFFF00, ); - local mut cur: heap::*mut Node = head; + local mut cur: heap::*Node = head; local mut first: bool = true; loop { if ptr::is_null(cur) { break } diff --git a/examples/vec/main.wx b/examples/vec/main.wx index 1d12c9c..8651a53 100644 --- a/examples/vec/main.wx +++ b/examples/vec/main.wx @@ -22,9 +22,9 @@ impl Layout { trait Allocator { type M: Memory; - fn alloc(mut self, layout: Layout) -> Self::M::*mut u8; + fn alloc(mut self, layout: Layout) -> Self::M::*u8; - fn dealloc(mut self, ptr: Self::M::*mut u8, layout: Layout); + fn dealloc(mut self, ptr: Self::M::*u8, layout: Layout); } struct BumpAllocator {} @@ -32,19 +32,18 @@ struct BumpAllocator {} impl Allocator for BumpAllocator { type M = heap; - fn alloc(x, layout: Layout) -> heap::*mut u8 { - local align = layout.align; - local ptr = (bump as u32 + align - 1) / align * align; + fn alloc(x, layout: Layout) -> heap::*u8 { + local ptr = ptr::align_up::(bump as u32, layout.align); local new_end = ptr + layout.size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { local needed = (new_end - cur_end + PAGE_SIZE - 1) / PAGE_SIZE; } bump = new_end as heap::*u8; - ptr as heap::*mut u8 + ptr as heap::*u8 } - fn dealloc(x, _ptr: heap::*mut u8, _layout: Layout) {} + fn dealloc(x, _ptr: heap::*u8, _layout: Layout) {} } struct Vec { @@ -57,7 +56,7 @@ struct Vec { impl Vec { #[inline] pub fn new(alloc: A) -> Vec { - Vec::{ buf: ptr::null(), len: 0, cap: 0, alloc } + Vec::{ buf: ptr::null_mut(), len: 0, cap: 0, alloc } } pub fn push(mut self: A::M::*Self, value: T) { @@ -85,12 +84,12 @@ impl Vec { self.*.len = self.*.len + 1; } - pub fn get(self: A::M::*Self, index: A::M::Size) -> T { + pub fn get(self: A::M::&Self, index: A::M::Size) -> T { self.*.buf.add(index).* } #[inline] - pub fn len(self: A::M::*Self) -> A::M::Size { + pub fn len(self: A::M::&Self) -> A::M::Size { self.*.len } } diff --git a/examples/wasi_args/main.wx b/examples/wasi_args/main.wx index c509f4c..631f687 100644 --- a/examples/wasi_args/main.wx +++ b/examples/wasi_args/main.wx @@ -19,9 +19,9 @@ enum Errno: i32 { } import "wasi_snapshot_preview1" as wasi { - fn args_sizes_get(argc: *mut u32, argv_buf_size: *mut u32) -> Errno; - fn args_get(argv: *mut u32, argv_buf: *mut u8) -> Errno; - fn fd_write(fd: FileDescriptor, io_vecs: [][]u8, bytes_written: *mut u32) -> Errno; + fn args_sizes_get(argc: *u32, argv_buf_size: *u32) -> Errno; + fn args_get(argv: *u32, argv_buf: *u8) -> Errno; + fn fd_write(fd: FileDescriptor, io_vecs: &[&[u8]], bytes_written: *u32) -> Errno; } global mut bump: *u8 = heap::DATA_END; @@ -31,8 +31,8 @@ struct BumpAllocator {} impl Allocator for BumpAllocator { type Mem = heap; - fn reserve(self: *mut Self, layout: Layout) -> *mut u8 { - local ptr = (bump as u32 + layout.align - 1) / layout.align * layout.align; + fn reserve(self: *Self, layout: Layout) -> *u8 { + local ptr = ptr::align_up::(bump as u32, layout.align); local new_end = ptr + layout.size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -40,13 +40,13 @@ impl Allocator for BumpAllocator { if heap.grow(needed) == -1 { unreachable } } bump = new_end as *u8; - ptr as *mut u8 + ptr as *u8 } } -fn write_all(fd: FileDescriptor, bytes: []u8) { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); - local io_vecs = alloc.alloc_slice::<[]u8>(1); +fn write_all(fd: FileDescriptor, bytes: &[u8]) { + local alloc: *BumpAllocator = std::ptr::null_mut(); + local io_vecs = alloc.alloc_slice::<&[u8]>(1); io_vecs[0] = bytes; local nwritten = alloc.alloc::(0); if wasi::fd_write(fd, io_vecs, nwritten) != Errno::Success { unreachable }; @@ -54,7 +54,7 @@ fn write_all(fd: FileDescriptor, bytes: []u8) { // WASI argv/environ strings are NUL-terminated C strings; scan forward to // find the length before turning a pointer into a wx slice. -fn cstr_len(mut p: *u8) -> u32 { +fn cstr_len(mut p: &u8) -> u32 { local mut len: u32 = 0; loop { if p.* == 0 { break len }; @@ -64,7 +64,7 @@ fn cstr_len(mut p: *u8) -> u32 { } fn main() { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); + local alloc: *BumpAllocator = std::ptr::null_mut(); local argc_ptr = alloc.alloc::(0); local argv_buf_size_ptr = alloc.alloc::(0); diff --git a/examples/wasi_file_io/main.wx b/examples/wasi_file_io/main.wx index 16776b2..1529776 100644 --- a/examples/wasi_file_io/main.wx +++ b/examples/wasi_file_io/main.wx @@ -42,16 +42,16 @@ import "wasi_snapshot_preview1" as wasi { fn path_open( dir_fd: FileDescriptor, dir_flags: u32, - path: []u8, + path: &[u8], o_flags: u32, fs_rights_base: u64, fs_rights_inheriting: u64, fd_flags: u32, - opened_fd: *mut u32, + opened_fd: *u32, ) -> Errno; - fn fd_write(fd: FileDescriptor, io_vecs: [][]u8, bytes_written: *mut u32) -> Errno; - fn fd_read(fd: FileDescriptor, io_vecs: [][]mut u8, bytes_read: *mut u32) -> Errno; + fn fd_write(fd: FileDescriptor, io_vecs: &[&[u8]], bytes_written: *u32) -> Errno; + fn fd_read(fd: FileDescriptor, io_vecs: &[*[u8]], bytes_read: *u32) -> Errno; fn fd_close(fd: FileDescriptor) -> Errno; } @@ -62,8 +62,8 @@ struct BumpAllocator {} impl Allocator for BumpAllocator { type Mem = heap; - fn reserve(self: *mut Self, layout: Layout) -> *mut u8 { - local ptr = (bump as u32 + layout.align - 1) / layout.align * layout.align; + fn reserve(self: *Self, layout: Layout) -> *u8 { + local ptr = ptr::align_up::(bump as u32, layout.align); local new_end = ptr + layout.size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -71,20 +71,20 @@ impl Allocator for BumpAllocator { if heap.grow(needed) == -1 { unreachable } } bump = new_end as *u8; - ptr as *mut u8 + ptr as *u8 } } -fn write_all(fd: FileDescriptor, bytes: []u8) { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); - local io_vecs = alloc.alloc_slice::<[]u8>(1); +fn write_all(fd: FileDescriptor, bytes: &[u8]) { + local alloc: *BumpAllocator = std::ptr::null_mut(); + local io_vecs = alloc.alloc_slice::<&[u8]>(1); io_vecs[0] = bytes; local nwritten = alloc.alloc::(0); if wasi::fd_write(fd, io_vecs, nwritten) != Errno::Success { unreachable }; } fn main() { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); + local alloc: *BumpAllocator = std::ptr::null_mut(); local created_fd_ptr = alloc.alloc::(0); local create_result = wasi::path_open( @@ -118,7 +118,7 @@ fn main() { local read_fd = read_fd_ptr.* as FileDescriptor; local buf = alloc.alloc_slice::(256); - local io_vecs = alloc.alloc_slice::<[]mut u8>(1); + local io_vecs = alloc.alloc_slice::<*[u8]>(1); io_vecs[0] = buf; local nread = alloc.alloc::(0); if wasi::fd_read(read_fd, io_vecs, nread) != Errno::Success { unreachable }; diff --git a/examples/wasi_hello_world/main.wx b/examples/wasi_hello_world/main.wx index b6caf17..4c8e69c 100644 --- a/examples/wasi_hello_world/main.wx +++ b/examples/wasi_hello_world/main.wx @@ -4,7 +4,7 @@ use std::*; enum FileDescriptor: u8 { - StdIn, + StdIn = 0, StdOut, StdErr, } @@ -12,8 +12,8 @@ enum FileDescriptor: u8 { import "wasi_snapshot_preview1" as wasi { fn fd_write( file_descriptor: FileDescriptor, - io_vecs: [][]u8, - bytes_written: *mut u32, + io_vecs: &[&[u8]], + bytes_written: *u32, ) -> i32; } @@ -26,8 +26,8 @@ struct BumpAllocator {} impl Allocator for BumpAllocator { type Mem = heap; - fn reserve(self: *mut Self, layout: Layout) -> *mut u8 { - local ptr = (bump as u32 + layout.align - 1) / layout.align * layout.align; + fn reserve(self: *Self, layout: Layout) -> *u8 { + local ptr = ptr::align_up::(bump as u32, layout.align); local new_end = ptr + layout.size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -35,13 +35,13 @@ impl Allocator for BumpAllocator { if heap.grow(needed) == -1 { unreachable } } bump = new_end as *u8; - ptr as *mut u8 + ptr as *u8 } } fn main() { - local bump: *mut BumpAllocator = std::ptr::null_mut(); - local io_vecs = bump.alloc_slice::<[]u8>(1); + local bump: *BumpAllocator = std::ptr::null_mut(); + local io_vecs = bump.alloc_slice::<&[u8]>(1); io_vecs[0] = "Hello, world!\n"; local nwritten_ptr = bump.alloc::(0); _ = wasi::fd_write(FileDescriptor::StdOut, io_vecs, nwritten_ptr); diff --git a/examples/wasi_preview1_port/main.wx b/examples/wasi_preview1_port/main.wx index 5dc9fc5..7bb6246 100644 --- a/examples/wasi_preview1_port/main.wx +++ b/examples/wasi_preview1_port/main.wx @@ -21,10 +21,12 @@ // separate union/ADT construct. The workaround models the real C ABI // the union compiles to instead of the union itself: a tag field // followed by a payload field typed as the *largest* variant, with -// every other (smaller) variant read/written by reinterpreting that -// same field's address as a pointer to the smaller variant's type — -// valid because union members always share the union's base address. -// See `SubscriptionU` below. +// every other (smaller) variant addressed by computing its byte +// offset within the payload (via a null-pointer `offsetof`, since +// `.&` only ever yields a shared reference, never a reinterpretable +// pointer) and reinterpreting the base pointer's address plus that +// offset as the smaller variant's type — valid because union members +// always share the union's base address. See `SubscriptionU` below. // // A third issue — a struct-of-structs (`Subscription.u: SubscriptionU`, // itself containing `SubscriptionClock`) used to either crash the compiler @@ -189,11 +191,11 @@ module Rights { } // ── `$iovec` / `$ciovec` / `$iovec_array` / `$ciovec_array` ───────────────── -// No struct needed at all: wx's native `[]T` slice ABI already lowers to +// No struct needed at all: wx's native slice ABI already lowers to // exactly `{ ptr: u32, len: u32 }` in linear memory (see // `examples/wasi_hello_world`), which is bit-for-bit `__wasi_ciovec_t`'s -// layout. `[]u8` *is* `$ciovec` and `[]mut u8` *is* `$iovec`; `[][]u8` / -// `[][]mut u8` are the `_array` list variants. Used inline below. +// layout. `&[u8]` *is* `$ciovec` and `*[u8]` *is* `$iovec`; `&[&[u8]]` / +// `&[*[u8]]` are the `_array` list variants. Used inline below. // ── `$whence` ──────────────────────────────────────────────────────────────── enum Whence: u8 { Set = 0, @@ -346,8 +348,10 @@ struct SubscriptionU { clock: SubscriptionClock, } -fn subscription_u_as_fd_readwrite(u: *mut SubscriptionU) -> *mut SubscriptionFdReadwrite { - (u.*.clock.&mut) as _ +fn subscription_u_as_fd_readwrite(u: *SubscriptionU) -> *SubscriptionFdReadwrite { + local base: *SubscriptionU = ptr::null_mut(); + local offset = (base.*.clock.& as heap::Size) - (base as heap::Size); + (u as heap::Size + offset) as *SubscriptionFdReadwrite } // ── `$subscription` ────────────────────────────────────────────────────────── @@ -447,49 +451,43 @@ enum ClockId: u32 { // out-pointers instead of one. This is the same shape already proven in // `examples/wasi_args`'s `args_sizes_get`. import "wasi_snapshot_preview1" as wasi { - fn args_get(argv: *mut u32, argv_buf: *mut u8) -> Errno; - fn args_sizes_get(argc: *mut u32, argv_buf_size: *mut u32) -> Errno; - fn environ_get(environ: *mut u32, environ_buf: *mut u8) -> Errno; - fn environ_sizes_get(environ_count: *mut u32, environ_buf_size: *mut u32) -> Errno; - fn clock_res_get(id: ClockId, resolution: *mut u64) -> Errno; - fn clock_time_get(id: ClockId, precision: u64, time: *mut u64) -> Errno; + fn args_get(argv: *u32, argv_buf: *u8) -> Errno; + fn args_sizes_get(argc: *u32, argv_buf_size: *u32) -> Errno; + fn environ_get(environ: *u32, environ_buf: *u8) -> Errno; + fn environ_sizes_get(environ_count: *u32, environ_buf_size: *u32) -> Errno; + fn clock_res_get(id: ClockId, resolution: *u64) -> Errno; + fn clock_time_get(id: ClockId, precision: u64, time: *u64) -> Errno; fn fd_advise(fd: Fd, offset: u64, len: u64, advice: Advice) -> Errno; fn fd_allocate(fd: Fd, offset: u64, len: u64) -> Errno; fn fd_close(fd: Fd) -> Errno; fn fd_datasync(fd: Fd) -> Errno; - fn fd_fdstat_get(fd: Fd, stat: *mut Fdstat) -> Errno; + fn fd_fdstat_get(fd: Fd, stat: *Fdstat) -> Errno; fn fd_fdstat_set_flags(fd: Fd, flags: u16) -> Errno; fn fd_fdstat_set_rights( fd: Fd, fs_rights_base: u64, fs_rights_inheriting: u64, ) -> Errno; - fn fd_filestat_get(fd: Fd, stat: *mut Filestat) -> Errno; + fn fd_filestat_get(fd: Fd, stat: *Filestat) -> Errno; fn fd_filestat_set_size(fd: Fd, size: u64) -> Errno; fn fd_filestat_set_times(fd: Fd, atim: u64, mtim: u64, fst_flags: u16) -> Errno; - fn fd_pread(fd: Fd, iovs: [][]mut u8, offset: u64, nread: *mut u32) -> Errno; - fn fd_prestat_get(fd: Fd, prestat: *mut Prestat) -> Errno; - fn fd_prestat_dir_name(fd: Fd, path: *mut u8, path_len: u32) -> Errno; - fn fd_pwrite(fd: Fd, iovs: [][]u8, offset: u64, nwritten: *mut u32) -> Errno; - fn fd_read(fd: Fd, iovs: [][]mut u8, nread: *mut u32) -> Errno; - fn fd_readdir( - fd: Fd, - buf: *mut u8, - buf_len: u32, - cookie: u64, - bufused: *mut u32, - ) -> Errno; + fn fd_pread(fd: Fd, iovs: &[*[u8]], offset: u64, nread: *u32) -> Errno; + fn fd_prestat_get(fd: Fd, prestat: *Prestat) -> Errno; + fn fd_prestat_dir_name(fd: Fd, path: *u8, path_len: u32) -> Errno; + fn fd_pwrite(fd: Fd, iovs: &[&[u8]], offset: u64, nwritten: *u32) -> Errno; + fn fd_read(fd: Fd, iovs: &[*[u8]], nread: *u32) -> Errno; + fn fd_readdir(fd: Fd, buf: *u8, buf_len: u32, cookie: u64, bufused: *u32) -> Errno; fn fd_renumber(fd: Fd, to: Fd) -> Errno; - fn fd_seek(fd: Fd, offset: i64, whence: Whence, newoffset: *mut u64) -> Errno; + fn fd_seek(fd: Fd, offset: i64, whence: Whence, newoffset: *u64) -> Errno; fn fd_sync(fd: Fd) -> Errno; - fn fd_tell(fd: Fd, offset: *mut u64) -> Errno; - fn fd_write(fd: Fd, iovs: [][]u8, nwritten: *mut u32) -> Errno; - fn path_create_directory(fd: Fd, path: []u8) -> Errno; - fn path_filestat_get(fd: Fd, flags: u32, path: []u8, stat: *mut Filestat) -> Errno; + fn fd_tell(fd: Fd, offset: *u64) -> Errno; + fn fd_write(fd: Fd, iovs: &[&[u8]], nwritten: *u32) -> Errno; + fn path_create_directory(fd: Fd, path: &[u8]) -> Errno; + fn path_filestat_get(fd: Fd, flags: u32, path: &[u8], stat: *Filestat) -> Errno; fn path_filestat_set_times( fd: Fd, flags: u32, - path: []u8, + path: &[u8], atim: u64, mtim: u64, fst_flags: u16, @@ -497,55 +495,49 @@ import "wasi_snapshot_preview1" as wasi { fn path_link( old_fd: Fd, old_flags: u32, - old_path: []u8, + old_path: &[u8], new_fd: Fd, - new_path: []u8, + new_path: &[u8], ) -> Errno; fn path_open( fd: Fd, dirflags: u32, - path: []u8, + path: &[u8], oflags: u16, fs_rights_base: u64, fs_rights_inheriting: u64, fdflags: u16, - opened_fd: *mut u32, - ) -> Errno; - fn path_readlink( - fd: Fd, - path: []u8, - buf: *mut u8, - buf_len: u32, - bufused: *mut u32, + opened_fd: *u32, ) -> Errno; - fn path_remove_directory(fd: Fd, path: []u8) -> Errno; - fn path_rename(fd: Fd, old_path: []u8, new_fd: Fd, new_path: []u8) -> Errno; - fn path_symlink(old_path: []u8, fd: Fd, new_path: []u8) -> Errno; - fn path_unlink_file(fd: Fd, path: []u8) -> Errno; + fn path_readlink(fd: Fd, path: &[u8], buf: *u8, buf_len: u32, bufused: *u32) -> Errno; + fn path_remove_directory(fd: Fd, path: &[u8]) -> Errno; + fn path_rename(fd: Fd, old_path: &[u8], new_fd: Fd, new_path: &[u8]) -> Errno; + fn path_symlink(old_path: &[u8], fd: Fd, new_path: &[u8]) -> Errno; + fn path_unlink_file(fd: Fd, path: &[u8]) -> Errno; // `$in`/`$out` are raw pointers to caller-managed arrays with the element // count passed separately (`nsubscriptions`), *not* witx `list`s — so - // these stay single-element pointers rather than `[]T` slices; the slice + // these stay single-element pointers rather than slices; the slice // ABI's implicit length would duplicate (and could disagree with) // `nsubscriptions`. fn poll_oneoff( - in_: *Subscription, - out: *mut Event, + in_: &Subscription, + out: *Event, nsubscriptions: u32, - nevents: *mut u32, + nevents: *u32, ) -> Errno; fn proc_exit(rval: u32); fn proc_raise(sig: Signal) -> Errno; fn sched_yield() -> Errno; - fn random_get(buf: []mut u8) -> Errno; - fn sock_accept(fd: Fd, flags: u16, new_fd: *mut u32) -> Errno; + fn random_get(buf: *[u8]) -> Errno; + fn sock_accept(fd: Fd, flags: u16, new_fd: *u32) -> Errno; fn sock_recv( fd: Fd, - ri_data: [][]mut u8, + ri_data: &[*[u8]], ri_flags: u16, - ro_datalen: *mut u32, - ro_flags: *mut u16, + ro_datalen: *u32, + ro_flags: *u16, ) -> Errno; - fn sock_send(fd: Fd, si_data: [][]u8, si_flags: u16, so_datalen: *mut u32) -> Errno; + fn sock_send(fd: Fd, si_data: &[&[u8]], si_flags: u16, so_datalen: *u32) -> Errno; fn sock_shutdown(fd: Fd, how: u8) -> Errno; } @@ -565,8 +557,8 @@ struct BumpAllocator {} impl Allocator for BumpAllocator { type Mem = heap; - fn reserve(self: *mut Self, layout: Layout) -> *mut u8 { - local ptr = (bump as u32 + layout.align - 1) / layout.align * layout.align; + fn reserve(self: *Self, layout: Layout) -> *u8 { + local ptr = ptr::align_up::(bump as u32, layout.align); local new_end = ptr + layout.size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -574,13 +566,13 @@ impl Allocator for BumpAllocator { if heap.grow(needed) == -1 { unreachable } } bump = new_end as *u8; - ptr as *mut u8 + ptr as *u8 } } -fn write_all(fd: Fd, bytes: []u8) { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); - local io_vecs = alloc.alloc_slice::<[]u8>(1); +fn write_all(fd: Fd, bytes: &[u8]) { + local alloc: *BumpAllocator = std::ptr::null_mut(); + local io_vecs = alloc.alloc_slice::<&[u8]>(1); io_vecs[0] = bytes; local nwritten = alloc.alloc::(0); if wasi::fd_write(fd, io_vecs, nwritten) != Errno::Success { unreachable }; @@ -589,7 +581,7 @@ fn write_all(fd: Fd, bytes: []u8) { // Decimal, not hex, so the demo output reads naturally; values here are all // small (enum tags, event counts), so a 10-digit buffer is more than enough. fn write_decimal(fd: Fd, mut value: u32) { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); + local alloc: *BumpAllocator = std::ptr::null_mut(); local buf = alloc.alloc_slice::(10); local mut i: u32 = 10; if value == 0 { @@ -607,7 +599,7 @@ fn write_decimal(fd: Fd, mut value: u32) { } fn main() { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); + local alloc: *BumpAllocator = std::ptr::null_mut(); // clock_time_get: a plain scalar (u64) out-param. local time_ptr = alloc.alloc::(0); diff --git a/examples/wasi_random/main.wx b/examples/wasi_random/main.wx index 79f1a9e..4f37922 100644 --- a/examples/wasi_random/main.wx +++ b/examples/wasi_random/main.wx @@ -18,8 +18,8 @@ enum Errno: i32 { } import "wasi_snapshot_preview1" as wasi { - fn random_get(buf: []mut u8) -> Errno; - fn fd_write(fd: FileDescriptor, io_vecs: [][]u8, bytes_written: *mut u32) -> Errno; + fn random_get(buf: *[u8]) -> Errno; + fn fd_write(fd: FileDescriptor, io_vecs: &[&[u8]], bytes_written: *u32) -> Errno; } global mut bump: *u8 = heap::DATA_END; @@ -29,8 +29,8 @@ struct BumpAllocator {} impl Allocator for BumpAllocator { type Mem = heap; - fn reserve(self: *mut Self, layout: Layout) -> *mut u8 { - local ptr = (bump as u32 + layout.align - 1) / layout.align * layout.align; + fn reserve(self: *Self, layout: Layout) -> *u8 { + local ptr = ptr::align_up::(bump as u32, layout.align); local new_end = ptr + layout.size; local cur_end = heap.size() * PAGE_SIZE; if new_end > cur_end { @@ -38,15 +38,15 @@ impl Allocator for BumpAllocator { if heap.grow(needed) == -1 { unreachable } } bump = new_end as *u8; - ptr as *mut u8 + ptr as *u8 } } const RANDOM_BYTES: u32 = 16; -fn write_all(fd: FileDescriptor, bytes: []u8) { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); - local io_vecs = alloc.alloc_slice::<[]u8>(1); +fn write_all(fd: FileDescriptor, bytes: &[u8]) { + local alloc: *BumpAllocator = std::ptr::null_mut(); + local io_vecs = alloc.alloc_slice::<&[u8]>(1); io_vecs[0] = bytes; local nwritten = alloc.alloc::(0); if wasi::fd_write(fd, io_vecs, nwritten) != Errno::Success { unreachable }; @@ -57,7 +57,7 @@ fn hex_digit(nibble: u8) -> u8 { } fn main() { - local alloc: *mut BumpAllocator = std::ptr::null_mut(); + local alloc: *BumpAllocator = std::ptr::null_mut(); local random_bytes = alloc.alloc_slice::(RANDOM_BYTES); if wasi::random_get(random_bytes) != Errno::Success { unreachable }; diff --git a/notes/effect-system.md b/notes/effect-system.md index d7781c4..5f2dd4a 100644 --- a/notes/effect-system.md +++ b/notes/effect-system.md @@ -30,74 +30,129 @@ perform**. There is exactly one concept — the *effect set* — and everything else is a point on its lattice: | Written | Meaning | Lattice position | -|--------------|----------------------|-------------------------| -| `!()` | empty set — **pure** | bottom | -| `!(trap)` | the set `{trap}` | an atom | -| `!(read, trap)` | `{read, trap}` | a union | -| `!*` | all effects | top | -| *(absent)* | top — identical to `!*` (§4) | top | +|--------------|-----------------------|--------------------------| +| `does()` | empty set — **pure** | bottom | +| `does(trap)` | the set `{trap}` | an atom | +| `does(read, trap)` | `{read, trap}` | a union | +| `does(*)` | all effects | top | +| *(absent)* | top — identical to `does(*)` (§4) | top | Ordering is subset. `A ⊆ B` means a function with effect set `A` may be used -wherever `B` is permitted — so a pure function (`!()`) is usable anywhere, and -nothing is usable where `!()` is required unless it is itself pure. This +wherever `B` is permitted — so a pure function (`does()`) is usable anywhere, and +nothing is usable where `does()` is required unless it is itself pure. This subtyping is the soundness backbone: it lets the optimizer key off the declared bound. -**Top is open-world.** `!*` means *every* effect that could ever exist — +**Top is open-world.** `does(*)` means *every* effect that could ever exist — including host imports and markers not yet declared — never "the union of effects -known so far." So `X ⊆ !*` is unconditionally true for any `X`, and the checker -never expands `!*` into members. (If `!*` meant "all currently-known effects," -adding a host import later would silently break every `!*` written before it.) +known so far." So `X ⊆ does(*)` is unconditionally true for any `X`, and the +checker never expands `does(*)` into members. (If `does(*)` meant "all +currently-known effects," adding a host import later would silently break every +`does(*)` written before it.) "pure" is not a separate keyword or concept. **Pure is just the empty set.** Top is just the full set. A single root effect is just an atom. This is why there is no `strict` keyword and no separate effect declarations — see §5. +> **Considered for the empty spelling, and dropped:** a dedicated `pure` +> keyword, or `does(_)`, instead of bare `does()` — the worry being that an +> accidentally-emptied list (deleting entries during a refactor) silently +> reads as "pure" instead of a mistake. `does(_)` specifically collides with +> two meanings `_` already has elsewhere: the type-inference placeholder +> (irrelevant here — effects are never inferred), and the deliberately- +> existential memory wildcard `read<_>`/`write<_>` (§6, §8) — the same token +> would mean "wildcard" in one bracket and "explicitly empty" in another. A +> `pure` keyword avoids that collision but reopens the minimalism commitment +> just above. Not worth it: for a *bodied* function this risk is +> self-correcting — an accidentally over-narrowed `does()` fails loudly the +> moment the body still calls something effectful, since the bound is +> checked, not trusted. It's only silent for *bodyless leaves*, where the +> annotation is ground truth (§4) — and that's the same small, stdlib-internal, +> deliberately-authored surface the "forgetting to annotate" risk already +> lives on. One review/testing discipline covers both; it doesn't need its +> own syntax. + --- ## 3. Syntax -The effect set is part of the *arrow type*, so it sits after the return type as -a trailing `!(...)` clause: +The effect clause sits between the parameter list and the return type — it +describes what happens *while the function runs*, not a property of its +output, so it belongs next to the signature's other execution-time qualifiers +rather than glued onto the return type: ```wx -fn add(a: i32, b: i32) -> i32 !() // pure -fn log(msg: str) !(io) // may perform io -fn frobnicate() -> T !(io, alloc) // may perform io and/or alloc -fn whatever() // no annotation — impure (top) +fn add(a: i32, b: i32) does() -> i32 // pure +fn log(msg: str) does(io) // may perform io +fn frobnicate() does(io, alloc) -> T // may perform io and/or alloc +fn whatever() // no annotation — impure (top) ``` This maps 1:1 onto the permission model the feature grew out of: ``` -allow(*) == (absent) or !* -allow(x, y, z) == !(x, y, z) -allow() == !() +allow(*) == (absent) or does(*) +allow(x, y, z) == does(x, y, z) +allow() == does() ``` The clause has exactly **two shapes** — there is no middle ground: ``` -effect-clause := "!*" // top — all effects - | "!(" set ")" // an explicit set: !() pure, !(a, b, …) bounded +effect-clause := "does(*)" // top — all effects + | "does(" set ")" // an explicit set: does() pure, does(a, b, …) bounded ``` -`*` is a *distinct form*, never a list member — `!(io, *)` is ungrammatical, so -"these effects plus everything" (a meaningless state) cannot even be written. A -single-effect set still takes parens (`!(io)`, not `!io`): mandatory parens keep -one uniform "the parens hold the set" reading, and make growing a set a pure -insertion (`!(io)` → `!(io, trap)`) rather than a reshaping. - -**Formatting.** One space before the clause (`-> i32 !(read)`, and `) !(read)` -when there is no return type). The sigil binds tight to its delimiter (`!(`, -`!*` — never `! (`), which is also what keeps it unambiguous with `!` as logical -negation. Inside the parens, format as an ordinary comma-list (`!(a, b)`). - -> The `strict fn` spelling from early exploration is dropped: `strict` collides -> with strict-vs-lazy evaluation, and a leading keyword doesn't scale to the -> bounded case (`effect(io, alloc) fn` puts a growing list in front of the -> name). Trailing `!(...)` keeps the effect where it belongs type-theoretically -> and handles all three tiers with one mechanism. +`*` is a *distinct form*, never a list member — `does(io, *)` is ungrammatical, so +"these effects plus everything" (a meaningless state) cannot even be written. + +**Formatting.** One space before `does` (`) does(read)`, `(a: i32) does()`), no +space between `does` and its opening paren (`does(`, never `does (`) — `does` +is a keyword, not an operator, so the parens read as an ordinary clause-header +argument list, and a space before them would suggest `does` is a value being +applied to something rather than the start of a clause. Inside the parens, +format as an ordinary comma-list (`does(a, b)`). + +> **Rejected alternatives, and why.** Three other spellings were considered +> and dropped before settling here: +> - **Trailing after the return type** (`-> i32 !(read)`, a bang sigil). +> Mirrors Koka's `A -> e B`, where the effect genuinely is part of the arrow +> type — a real, principled tradition, not a bad idea on its face. Dropped +> anyway because it frames the effect as a property of *what the function +> returns*, when it's actually a property of *what runs while producing +> that return* — closer in spirit to Java's `throws` or C++'s `noexcept`, +> both of which sit next to the parameter list, independent of the return +> type. It was also position-inconsistent in practice: a function with no +> written return type had the clause sitting right after the params anyway +> (`fn log(msg: str) !(io)`, no arrow at all), so "trailing after the +> return type" was never even uniformly true — only "trailing after +> whatever the signature happened to end with." +> - **Bare `<...>`, no keyword, params-adjacent** (`fn div(a: i32, b: +> i32) -> i32`). Terser, but collides with the angle brackets already +> used for generic parameters a few tokens to the left — +> `read()>` stacks two unrelated `<...>` groups back +> to back with nothing textually announcing the second one is a different +> construct. A reader has to disambiguate two different grammars by +> position alone. +> - **`does <...>` — angle brackets with the keyword** (closer to Verse's +> actual spelling, ``). Keeps the keyword's legibility but keeps +> the bracket-collision problem from the bare version — `does >` +> still stacks three `<...>`-shaped things into one signature. Parens don't +> collide with anything else in the grammar, so once a keyword is already +> doing the disambiguating work, parens are strictly the better delimiter. +> - The `strict fn` spelling from even earlier exploration is dropped too: +> `strict` collides with strict-vs-lazy evaluation, and a leading keyword +> doesn't scale to the bounded case (`effect(io, alloc) fn` puts a growing +> list in front of the name). +> +> `does(...)` won on legibility: a keyword gives the eye a word-shaped anchor +> instead of a raw punctuation cluster, empty `does()` reads unambiguously as +> "deliberately nothing" the way bare `<>` right after a closing paren does +> not, and parens don't compete with the angle brackets generics already own. +> The extra characters land almost entirely on stdlib leaf declarations and +> deliberate purity claims — ordinary application code rarely writes an +> effect clause at all, since unannotated is top by default (§4) — so the +> verbosity is concentrated exactly where explicitness earns its keep. --- @@ -107,16 +162,16 @@ A function's annotation means one of two things, decided only by whether it has body: ``` -no annotation ⇒ top (!*) — uniform: say nothing ⇒ assume anything +no annotation ⇒ top (does(*)) — uniform: say nothing ⇒ assume anything annotated, bodied ⇒ checked bound — callees' declared ⊆ declared (one hop) annotated, bodyless ⇒ declared bound — ground truth; effects originate here ``` -There is **one default, and it is top.** Omitting the clause always means `!*` — -for a stdlib intrinsic, a host import, or an ordinary body alike. "I haven't said -what this does" resolves to "assume it may do anything," everywhere. There is no -special leaf default to remember; leaf vs bodied only decides whether an -annotation, once written, is *checked* or *declared*. +There is **one default, and it is top.** Omitting the clause always means +`does(*)` — for a stdlib intrinsic, a host import, or an ordinary body alike. +"I haven't said what this does" resolves to "assume it may do anything," +everywhere. There is no special leaf default to remember; leaf vs bodied only +decides whether an annotation, once written, is *checked* or *declared*. ### Bodied: the annotation is *checked* @@ -125,14 +180,14 @@ effect sets must be `⊆` its own declared set. One hop: it reads callees' signatures, never their bodies. ```wx -fn clear(p: heap::*mut i32) !(write, trap) { - store_i32(p, 0) // store_i32 declares !(write, trap) ⊆ same ✓ +fn clear(p: heap::*mut i32) does(write, trap) { + store_i32(p, 0) // store_i32 declares does(write, trap) ⊆ same ✓ } fn helper() { /* ... */ } // no annotation ⇒ top -fn caller() !() { - helper() // ERROR: helper is top, !() forbids all effects +fn caller() does() { + helper() // ERROR: helper is top, does() forbids all effects } ``` @@ -155,16 +210,16 @@ A bodyless annotation does one of two things: *itself* is a new primitive effect; the atom *is* the function identity. ```wx -fn trap() -> never !(trap); // trap is a fresh atom — the effect IS this function -fn read() !(read); // read is a fresh atom, parameterized by Mem +fn trap() does(trap) -> never; // trap is a fresh atom — the effect IS this function +fn read() does(read); // read is a fresh atom, parameterized by Mem ``` **Reuse existing effects — name others.** A bodyless function whose annotation names *other* effects produces exactly those, and mints no identity of its own. ```wx -fn store_i32(p: Mem::*mut i32, v: i32) !(write, trap); // exactly {write, trap} -fn div_s(a: i32, b: i32) -> i32 !(trap); // exactly {trap} +fn store_i32(p: Mem::*mut i32, v: i32) does(write, trap); // exactly {write, trap} +fn div_s(a: i32, b: i32) does(trap) -> i32; // exactly {trap} ``` `store_i32` is `{write, trap}`, **not** `{write, trap, store_i32}` — @@ -175,13 +230,13 @@ rather than carrying a useless identity atom no caller would name. ### Why this stays non-circular -`trap`'s annotation `!(trap)` names `trap` — that looks circular, but isn't, +`trap`'s annotation `does(trap)` names `trap` — that looks circular, but isn't, because of the resolution rule for effect terms: > **A bodyless function named in an effect term denotes *itself, as an atom*. A > bodied function named in an effect term denotes its *declared bound*.** -So resolving `!(trap)` is one step: `trap` is bodyless → the atom `trap`, done. +So resolving `does(trap)` is one step: `trap` is bodyless → the atom `trap`, done. You never expand a leaf's annotation to re-derive the leaf; the self-reference is reflexive by construction, not a recurrence. This is the one line to state explicitly in the spec — without it, someone later makes leaf-resolution expand @@ -193,24 +248,35 @@ descent.) Because bare now means top *even for leaves*, forgetting to annotate a new intrinsic yields top, not a tight guess — and top propagates. But it fails -**loud**: any `!()` function reaching the un-annotated leaf gets a compile error -(top ⊄ `{}`), so the mistake surfaces at the first purity boundary rather than -miscompiling. And leaves are few, stdlib-internal, and authored deliberately, so -the risk is concentrated and testable. In exchange the model has **one** default -instead of three, and the conservative direction (unknown ⇒ top) is the safe one -for everything uncharacterized — including foreign host imports, where "assume -anything" is exactly right. +**loud**: any `does()` function reaching the un-annotated leaf gets a compile +error (top ⊄ `{}`), so the mistake surfaces at the first purity boundary rather +than miscompiling. And leaves are few, stdlib-internal, and authored +deliberately, so the risk is concentrated and testable. In exchange the model +has **one** default instead of three, and the conservative direction (unknown ⇒ +top) is the safe one for everything uncharacterized — including foreign host +imports, where "assume anything" is exactly right. + +A different, one-directional risk sits at the same leaves: accidentally +*narrowing* a declared bound (e.g. deleting an entry down to `does()`) is not +self-correcting the way forgetting-to-annotate is. A bodyless annotation is +ground truth, not checked against a body, so an over-tight leaf annotation +fails **silently** rather than loudly — nothing catches "this should have been +`does(trap)` but got emptied" until something downstream relies on the missing +effect being tracked. It's the same concentrated, testable surface as above +though (see §2's note on why this doesn't get its own syntax): leaves are few +and stdlib-internal, so this is a review/testing discipline problem, not a gap +that needs a new spelling. --- ## 5. No separate effect items — effects are just functions There is no dedicated `effect` declaration. An effect is just a **bodyless -function that self-annotates** (`fn trap() -> never !(trap)`), which mints a fresh -atom whose identity *is* that function (§4). This keeps the "every effect is a -function" invariant with zero new syntax. +function that self-annotates** (`fn trap() does(trap) -> never`), which mints a +fresh atom whose identity *is* that function (§4). This keeps the "every effect +is a function" invariant with zero new syntax. -An **effect term** inside `!(...)` may be: +An **effect term** inside `does(...)` may be: - a **root name** — a bodyless function, resolves to `{itself}` (`trap`, `fd_write`); - a **function path** — resolves to that function's *declared* bound (one hop); @@ -218,15 +284,15 @@ An **effect term** inside `!(...)` may be: - an **alias** — a library-defined name bundling a set (e.g. `io`). Functions and traits **never introduce new atoms** — they only bundle existing -ones. This is what keeps the vocabulary from sprawling: writing `!(g)` doesn't -invent an effect, it points at the effects `g` already declares. +ones. This is what keeps the vocabulary from sprawling: writing `does(g)` +doesn't invent an effect, it points at the effects `g` already declares. > **Function-refs inherit the *declared* bound, never the inferred one.** -> `!(g)` reads `g`'s signature and stops. If it followed `g`'s body, your +> `does(g)` reads `g`'s signature and stops. If it followed `g`'s body, your > contract would silently widen whenever someone edited `g` — an abstraction > leak. So a function may appear in an allow-list only if it has an explicit -> annotation. Prefer named effects (`!(io, write)`, self-documenting) over -> function-refs (`!(read_file)`, opaque) for common cases. +> annotation. Prefer named effects (`does(io, write)`, self-documenting) over +> function-refs (`does(read_file)`, opaque) for common cases. ### Two layers @@ -238,14 +304,14 @@ independent axes: concrete stores/fills/copies). `store_i32` lowers to its store instruction. `trap` lowers to `unreachable`. - **Effect origin** — where the effect comes from. `trap`/`read`/`write`/`grow` - are *their own* effect (bodyless, **self-annotated** — `fn trap() -> never - !(trap)`). `store_i32` *reuses* others (bodyless, annotated with - `!(write, trap)`). + are *their own* effect (bodyless, **self-annotated** — `fn trap() does(trap) + -> never`). `store_i32` *reuses* others (bodyless, annotated with + `does(write, trap)`). Two useful roles fall out of this: - **Marker functions** — effect *identities*: bodyless, lower to nothing, are - their own effect. Their job is to be *named* in `!(...)`. `read`, `write`, + their own effect. Their job is to be *named* in `does(...)`. `read`, `write`, `grow`. - **Operational intrinsics** — bodyless functions that lower to a real instruction and *declare* a set of markers. `load_i32`, `store_i32`, @@ -257,17 +323,17 @@ there is a distinguished 1:1 "trap now" instruction for the effect to attach to, whereas `write` has no operational home and stays identity-only. ```wx -fn trap() -> never !(trap); // identity + lowers to `unreachable` -fn read() !(read); // identity only, self-annotated -fn write() !(write); // identity only, self-annotated +fn trap() does(trap) -> never; // identity + lowers to `unreachable` +fn read() does(read); // identity only, self-annotated +fn write() does(write); // identity only, self-annotated -fn store_i32(ptr: Mem::*mut i32, v: i32) !(write, trap); // operational +fn store_i32(ptr: Mem::*mut i32, v: i32) does(write, trap); // operational ``` These self-annotations are **load-bearing**, not decoration: a *bare* marker would be top (§4), so calling it — or naming it — would widen the caller to top instead of contributing a precise atom. Self-annotating pins each marker to -exactly its own effect, which is what makes both the named-in-`!(...)` use and +exactly its own effect, which is what makes both the named-in-`does(...)` use and the called-as-a-fence use (below) resolve to a single clean atom. ### Markers are callable — they are typed fences @@ -278,9 +344,9 @@ event**: it emits no code but contributes its effect to the enclosing function's inferred set, exactly as reaching a real store would. (`trap : () -> never` is the exception — calling it genuinely diverges, since it lowers to `unreachable`, and the compiler treats everything after the call as dead.) Soundness is -unaffected: call `write()` inside a `!()` function and the `⊆` check fails with -an ordinary error, because the checker doesn't distinguish an effect that came -from a marker call from one that came from an instruction. +unaffected: call `write()` inside a `does()` function and the `⊆` check fails +with an ordinary error, because the checker doesn't distinguish an effect that +came from a marker call from one that came from an instruction. The direction matters: **calling a marker only ever *widens* the effect set — it makes the optimizer more conservative, never more aggressive.** You cannot call a @@ -312,8 +378,8 @@ trait mixes pure and effectful methods" question — there is no conflict. ```wx trait Container { - fn len(&self) -> i32 !() // pure - fn push(&mut self, x: T) !(write) // may write + fn len(&self) does() -> i32 // pure + fn push(&mut self, x: T) does(write) // may write } ``` @@ -332,19 +398,20 @@ tops (i.e. top). You get precision out only where you put precision in — the s ```wx trait Io { - fn fd_write(fd: i32, ptr: heap::*u8, len: i32) -> i32 !(fd_write); - fn fd_read(fd: i32, ptr: heap::*mut u8, len: i32) -> i32 !(fd_read); + fn fd_write(fd: i32, ptr: heap::*u8, len: i32) does(fd_write) -> i32; + fn fd_read(fd: i32, ptr: heap::*mut u8, len: i32) does(fd_read) -> i32; } ``` -Now `!(Io)` = `{fd_write, fd_read}` — a real bundle — and every `impl` is checked -`⊆` its method's bound, so an impl can't secretly exceed it. **The trait is your -grouping mechanism; you need no separate effect-grouping primitive.** (Where do -`fd_write`/`fd_read` the effects come from? The host imports the impl actually -calls — the method bound is a *contract* that the impl's real import stays within -it.) This is why `io` is just a trait — or a plain `alias io = !(fd_write, -fd_read, …)` if your host boundary is free functions rather than methods. Either -reuses an existing language feature; neither is effect-system-specific. +Now `does(Io)` = `{fd_write, fd_read}` — a real bundle — and every `impl` is +checked `⊆` its method's bound, so an impl can't secretly exceed it. **The +trait is your grouping mechanism; you need no separate effect-grouping +primitive.** (Where do `fd_write`/`fd_read` the effects come from? The host +imports the impl actually calls — the method bound is a *contract* that the +impl's real import stays within it.) This is why `io` is just a trait — or a +plain `alias io = does(fd_write, fd_read, …)` if your host boundary is free +functions rather than methods. Either reuses an existing language feature; +neither is effect-system-specific. ### Import modules group effects too @@ -355,27 +422,27 @@ just an import block instead of a trait. ```wx import "console" as console { - fn log(message: heap::&[u8]) !(read, log); + fn log(message: heap::&[u8]) does(read, log); } -fn print(message: heap::&[u8]) !(console) { // !(console) = {read, log} +fn print(message: heap::&[u8]) does(console) { // does(console) = {read, log} console::log(message); } ``` -The grouping is **transparent**: `!(console)` expands to `{read, log}`, and -those atoms flow onward — a caller of `print` sees `read` and `log`, not an -opaque `console`. (This is the join reading, not a capability. `console` is -shorthand for its effects, not an opaque grant that hides them; keeping it -transparent means `⊆` needs no special module rules — it decomposes to atoms like -everything else.) +The grouping is **transparent**: `does(console)` expands to `{read, +log}`, and those atoms flow onward — a caller of `print` sees `read` and +`log`, not an opaque `console`. (This is the join reading, not a capability. +`console` is shorthand for its effects, not an opaque grant that hides them; +keeping it transparent means `⊆` needs no special module rules — it decomposes +to atoms like everything else.) -Same trade-off as any group: `!(console)` is a bound over the **whole +Same trade-off as any group: `does(console)` is a bound over the **whole interface**, so adding an effectful import to `console` later silently widens -every `!(console)` annotation. When you want the contract pinned to what you -actually call, drop to the member projection `!(console::log)`, or name the atoms -directly (`!(read, log)`). Reach for `!(console)` when you genuinely mean -"as effectful as the whole console surface." +every `does(console)` annotation. When you want the contract pinned to what you +actually call, drop to the member projection `does(console::log)`, or name the +atoms directly (`does(read, log)`). Reach for `does(console)` when you +genuinely mean "as effectful as the whole console surface." ### A trait in an effect term = its method bounds, with `Self` supplied @@ -384,11 +451,11 @@ those bounds may mention `Self`, so the term needs a `Self` to project against two cases: - **Self-independent bounds** (like `Io` — no `Self::` in any method effect): the - projection is already ground, so **bare `!(Io)` works anywhere**, whoever `Self` - is. The plain grouping case. + projection is already ground, so **bare `does(Io)` works anywhere**, whoever + `Self` is. The plain grouping case. - **Self-dependent bounds** (like `Deref`, effect `read`): bare - `!(Deref)` has a *free* `Self` and is **ill-formed alone** — the same error as a - bare `Self::Target` out of scope. You must supply `Self`. + `does(Deref)` has a *free* `Self` and is **ill-formed alone** — the same error + as a bare `Self::Target` out of scope. You must supply `Self`. ### Associated-type effects are substitution, not effect-variable polymorphism @@ -398,7 +465,7 @@ A trait with an associated memory carries it into the effect: trait Deref { type Mem: Memory; type Target; - fn deref(&self) -> &Self::Target !(read); + fn deref(&self) does(read) -> &Self::Target; } ``` @@ -406,7 +473,7 @@ trait Deref { already mentions, so it needs no new machinery: once `Self` is bound, `Self::Mem` substitutes in lockstep with every other associated-type projection in the signature. This is **type-argument substitution — the cheap kind** — *not* the -effect-variable polymorphism of `!E` callbacks (§11), where the effect +effect-variable polymorphism of `does E` callbacks (§11), where the effect *constructor* is unknown. Here the constructor is fixed (`read`); only its argument varies. @@ -420,33 +487,33 @@ Where `Self` comes from, and the spellings: ```wx // enclosing trait Self — bare form works, Self is in scope trait Smart: Deref { - fn peek(&self) !(Deref); // = !(Self: Deref) = read + fn peek(&self) does(Deref); // = does(Self: Deref) = read } // a generic param bound by the trait -fn first(x: T) -> &T::Target !(T: Deref) { x.deref() } // = read -fn first(x: T) -> &T::Target !(Deref) { x.deref() } // sugar: unique Self inferred -fn cnt(x: T) !(T) // terse: join over ALL of T's bounds +fn first(x: T) does(T: Deref) -> &T::Target { x.deref() } // = read +fn first(x: T) does(Deref) -> &T::Target { x.deref() } // sugar: unique Self inferred +fn cnt(x: T) does(T) // terse: join over ALL of T's bounds // concrete type — Self bound, effect ground -fn conc(p: FilePtr) !() { … } // = read +fn conc(p: FilePtr) does() { … } // = read // single method — tighter than the whole trait -fn only(x: T) !(T::deref) // just deref's bound +fn only(x: T) does(T::deref) // just deref's bound ``` -- `!(T: Deref)` / `!()` — the `Deref` facet of `T`, explicit. -- `!(Deref)` — sugar, valid only when exactly one `Self` is in scope (enclosing - trait, or a single generic param bound by `Deref`); ambiguous or absent ⇒ - error, name it. -- `!(T)` — the join over *all* of `T`'s trait bounds ("as effectful as `T` - permits"); the terse common case, with `!(T: Deref)` as the narrowing. -- `!(T::deref)` — one method's bound, tighter than the whole trait. +- `does(T: Deref)` / `does()` — the `Deref` facet of `T`, explicit. +- `does(Deref)` — sugar, valid only when exactly one `Self` is in scope + (enclosing trait, or a single generic param bound by `Deref`); ambiguous or + absent ⇒ error, name it. +- `does(T)` — the join over *all* of `T`'s trait bounds ("as effectful as `T` + permits"); the terse common case, with `does(T: Deref)` as the narrowing. +- `does(T::deref)` — one method's bound, tighter than the whole trait. ### Checking generic bodies Checking `first`: the body's `x.deref()` has effect `read`, and the -declared bound `!(T: Deref)` *is* `read`. The check +declared bound `does(T: Deref)` *is* `read`. The check `read ⊆ read` holds **syntactically**, without knowing what `T::Mem` concretely is — the payoff of writing body and bound against the same projection. The rule the checker needs is one line: **compare effect terms up to @@ -456,25 +523,25 @@ the type-equality you already use for associated types.** `read ⊆ read` ### The grouping trade-off, and the existential trap -`!(T: Deref)` grabs *all* of `Deref`'s methods' effects even if you only call +`does(T: Deref)` grabs *all* of `Deref`'s methods' effects even if you only call `deref` — the price of grouping over enumeration (sound, conservative). Drop to -`!(T::deref)` when you want it tight. +`does(T::deref)` when you want it tight. -Do **not** give bare `!(Deref)` a silent existential meaning ("`read` for some -unknown `M`", i.e. `read<_>`). `read<_>` can't be reordered against *any* +Do **not** give bare `does(Deref)` a silent existential meaning ("`read` for +some unknown `M`", i.e. `read<_>`). `read<_>` can't be reordered against *any* memory's writes, collapsing per-memory precision. It's occasionally what you want, but it must be **spelled explicitly** (`read<_>`), never the accidental meaning of an unbound trait name. Make the unbound case an *error* pointing at -either `!(T: Deref)` (bound) or `read<_>` (deliberately existential), so the two +either `does(T: Deref)` (bound) or `read<_>` (deliberately existential), so the two intents never conflate. > **Operator traits are load-bearing.** `a + b` → `Add::add`, `arr[i]` → > `Index::index`, `*p` → `Deref::deref`, `*p = x` → `DerefMut::deref_mut`. If > these aren't annotated in the stdlib, *no function containing arithmetic or > indexing can ever be pure*, and the feature dies at desugaring. The stdlib's -> core traits must be meticulous: arithmetic `!()` (or `!(trap)` for -> overflow-trapping variants), `Index` `!(read, trap)`, -> `DerefMut` `!(write)`. User code needs no annotations unless it +> core traits must be meticulous: arithmetic `does()` (or `does(trap)` for +> overflow-trapping variants), `Index` `does(read, trap)`, +> `DerefMut` `does(write)`. User code needs no annotations unless it > wants the guarantee to propagate. --- @@ -483,8 +550,8 @@ intents never conflate. The primitive effects (roots) mirror the effectful subset of wasm instructions. Pure instructions (`add`, `mul`, shifts, comparisons, `wrap`, sign-extends, -`_sat` conversions) are `!()` and inline to instructions; only the effectful -ones are roots. +`_sat` conversions) are `does()` and inline to instructions; only the +effectful ones are roots. Marker names are **semantic** (`read`/`write`), not instruction names (`load`/`store`) — consistent with `trap`/`host`, honest about the many-to-one @@ -502,9 +569,9 @@ optimizer's own `readnone`/`readonly`/`readwrite` vocabulary. ### Trap facts (settled) -- **`memory.size` cannot trap** — no operands, always succeeds ⇒ `!(read)`. +- **`memory.size` cannot trap** — no operands, always succeeds ⇒ `does(read)`. - **`memory.grow` cannot trap** — returns `-1` on failure (a value you check), - otherwise the previous size ⇒ `!(read, grow)`, **no `trap`**. + otherwise the previous size ⇒ `does(read, grow)`, **no `trap`**. - **Loads and stores trap** on out-of-bounds ⇒ they carry `trap`. - **Pattern:** address-taking ops (loads/stores) can trap; size ops (`size`/`grow`) never do. `trap` distinguishes accessing memory *contents* at @@ -522,19 +589,19 @@ onto one effect. **Host imports don't collapse** — each is distinct — so eac import can simply **be its own effect**, self-annotated with itself: ```wx -fn fd_write(fd: i32, ptr: heap::*u8, len: i32) -> i32 !(fd_write); -fn fd_read(fd: i32, ptr: heap::*mut u8, len: i32) -> i32 !(fd_read); +fn fd_write(fd: i32, ptr: heap::*u8, len: i32) does(fd_write) -> i32; +fn fd_read(fd: i32, ptr: heap::*mut u8, len: i32) does(fd_read) -> i32; ``` Left *bare*, a host import is **top** (§4) — the safe default for a foreign function you've said nothing about. Self-annotate it to promote it into a distinct, nameable effect that callers can allow specifically. Bundle several -under a trait or a convenience `alias io = !(fd_write, fd_read, …)` when listing -gets tedious — a library-defined set, not a compiler concept (§6). This is the -single recipe for any new effect — trap, a memory marker, or disk I/O: **a -bodyless function whose annotation names the effect.** There is no separate -machinery for module-external effects; the OS is just on the other side of a host -import. +under a trait or a convenience `alias io = does(fd_write, fd_read, …)` when +listing gets tedious — a library-defined set, not a compiler concept (§6). +This is the single recipe for any new effect — trap, a memory marker, or disk +I/O: **a bodyless function whose annotation names the effect.** There is no +separate machinery for module-external effects; the OS is just on the other +side of a host import. ### Globals and tables — `.get()`/`.set()` over singleton globals @@ -553,9 +620,9 @@ effect term denotes *itself as an atom*. So the effect of a global read *is* `global_get`, self-annotated like `trap`: ```wx -fn global_get() -> G::Value !(global_get); -fn global_set(v: G::Value) !(global_set); -fn global_get_const() -> G::Value !(); // immutable ⇒ pure +fn global_get() does(global_get) -> G::Value; +fn global_set(v: G::Value) does(global_set); +fn global_get_const() does() -> G::Value; // immutable ⇒ pure ``` Memory needs *shared* `read`/`write` markers because many instructions collapse @@ -568,17 +635,17 @@ disjoint** — deliberately *not* a base/refinement hierarchy: ```wx trait Global { // immutable — no relation to GlobalMut type Value; - fn get(self) -> Self::Value !() { + fn get(self) does() -> Self::Value { global_get_const(self) } } trait GlobalMut { // mutable — disjoint from Global type Value; - fn get(self) -> Self::Value !(global_get) { + fn get(self) does(global_get) -> Self::Value { global_get(self) } - fn set(self, v: Self::Value) !(global_set) { + fn set(self, v: Self::Value) does(global_set) { global_set(self, v) } } @@ -587,27 +654,27 @@ global x: Global = 0; // singleton: mints a type AND a value global y: GlobalMut = 0; fn test() { - x.get(); // !() — immutable, pure - y.get(); // !(global_get) — mutable read - y.set(1); // !(global_set) + x.get(); // does() — immutable, pure + y.get(); // does(global_get) — mutable read + y.set(1); // does(global_set) } ``` Three things make this work, each already in the doc: -- **Method effects project through `Self`** (`!(global_get)`, not a free - `G`) — the same associated-type projection as `read` (§6); it +- **Method effects project through `Self`** (`does(global_get)`, not a + free `G`) — the same associated-type projection as `read` (§6); it resolves to `global_get` at the `y` impl. - **Each `global` decl is a singleton** — it mints both a type (for `global_get`) and a canonical value (to pass as `self`), like a `memory` decl. `global_get` ≠ `global_get` because `x`/`y` are distinct singleton types — per-global non-aliasing straight from the type system. (The index is a static identity, so the `<_>` existential never arises.) -- **The traits are disjoint on purpose.** A shared base `Global::get !()` that - `GlobalMut` also satisfied would be *unsound*: generic-over-`Global` code would - read a mutable, changing global as if pure. Keeping them unrelated closes that - hole — at the cost that you can't be generic over "any global regardless of - mutability." +- **The traits are disjoint on purpose.** A shared base `Global::get does()` + that `GlobalMut` also satisfied would be *unsound*: generic-over-`Global` + code would read a mutable, changing global as if pure. Keeping them + unrelated closes that hole — at the cost that you can't be generic over "any + global regardless of mutability." **Why the `.get()`/`.set()` tax is worth it.** It makes global access *syntactically visible*: a mutable global read is a method call, not a bare @@ -620,13 +687,13 @@ effectful trait methods (§6). **If disjointness ever bites** — you genuinely want "readable, whatever its mutability" — the sound escape is a third trait `GlobalRead` that both implement, -whose `get` returns the *conservative* effect `!(global_get)` (never `!()`). -Reading an immutable global *through* `GlobalRead` then loses purity, which is the -safe direction; it doesn't reopen the hole because the shared bound is the *loose* -one, not the pure one. Not needed now. +whose `get` returns the *conservative* effect `does(global_get)` (never +`does()`). Reading an immutable global *through* `GlobalRead` then loses +purity, which is the safe direction; it doesn't reopen the hole because the +shared bound is the *loose* one, not the pure one. Not needed now. **Tables** would follow the same shape parameterized by table identity: reads via -a `table.get` intrinsic (self-annotated `!(table_get)`), writes via +a `table.get` intrinsic (self-annotated `does(table_get)`), writes via `set`/`grow`/`fill`/`copy`, and `call_indirect` reading the table plus `trap` (bad index / null / signature mismatch). Table accesses also trap on out-of-bounds. Same experimental caveat applies. @@ -643,8 +710,8 @@ The memory identity rides on the **pointer type** (`Mem::*i32`, `Mem::*mut i32`), and the effect reads it off there: ```wx -fn load_i32(ptr: Mem::*i32) -> i32 !(read, trap); -fn store_i32(ptr: Mem::*mut i32, v: i32) !(write, trap); +fn load_i32(ptr: Mem::*i32) does(read, trap) -> i32; +fn store_i32(ptr: Mem::*mut i32, v: i32) does(write, trap); ``` > **Pointer mutability and the `write` effect are complementary, not @@ -710,8 +777,8 @@ not two threaded generics). Intrinsics (corrected effect sets): ```wx -fn memory_size(mem: Mem) -> Mem::Size !(read); -fn memory_grow(mem: Mem, delta: Mem::Size) -> Mem::Size !(read, grow); +fn memory_size(mem: Mem) does(read) -> Mem::Size; +fn memory_grow(mem: Mem, delta: Mem::Size) does(read, grow) -> Mem::Size; ``` --- @@ -720,11 +787,12 @@ fn memory_grow(mem: Mem, delta: Mem::Size) -> Mem::Size !(read The declared bound is what the optimizer trusts. Key thresholds: -- **`!()` — pure / referentially transparent** → CSE, LICM, dead-call +- **`does()` — pure / referentially transparent** → CSE, LICM, dead-call elimination, free reordering, memoization. -- **`!(trap)` vs `!()` — the totality line.** A pure-but-may-trap function is - referentially transparent yet *pinned before a side exit* — reorderable only - where a trap can't reorder observably. `!()` is freely movable. +- **`does(trap)` vs `does()` — the totality line.** A pure-but-may-trap + function is referentially transparent yet *pinned before a side exit* — + reorderable only where a trap can't reorder observably. `does()` is freely + movable. - **`read` vs `write` — `readonly` vs `readwrite`.** A read-only function is reorderable against other reads and its result is stable within an unwritten window (enables CSE/hoisting); a writer isn't. @@ -733,7 +801,7 @@ The declared bound is what the optimizer trusts. Key thresholds: in-bounds proof — so keeping it separate lets ordinary stores not clobber bounds-check facts. Pairs directly with **bounds-check elimination**: proving an index in range lets you *downgrade* an `Index::index` call from - `!(read, trap)` toward `!(read)` (the trap is discharged). + `does(read, trap)` toward `does(read)` (the trap is discharged). --- @@ -749,11 +817,11 @@ an `unsafe`-style cast that *asserts* a bound the compiler can't verify. The default is "error"; the escape hatch is a marked way to say "trust me." Default (§4): a **bodyless function with no annotation is top**, uniform with -bodied functions — say nothing, assume anything. This fails *loud* (any `!()` -caller reaching it errors at the purity boundary) and *conservative* (unknown ⇒ -top is the safe direction, exactly right for foreign host imports). A new effect -is created deliberately, by a bodyless function that self-annotates (§4); the -compiler never invents one from omission. +bodied functions — say nothing, assume anything. This fails *loud* (any +`does()` caller reaching it errors at the purity boundary) and *conservative* +(unknown ⇒ top is the safe direction, exactly right for foreign host imports). +A new effect is created deliberately, by a bodyless function that +self-annotates (§4); the compiler never invents one from omission. --- @@ -765,32 +833,32 @@ compiler never invents one from omission. generic list. Provisional syntax: ```wx - fn map(f: fn(T) -> U !E, xs: [T]) -> [U] !E + fn map(f: fn(T) does(E) -> U, xs: [T]) does(E) -> [U] ``` The callback's effect set `E` is bound as a generic and flows to the result, so `map` is exactly as effectful as the `f` it is handed. **This is always the developer's explicit decision — never inferred or auto-derived.** ("What does - `!E` mean here" is not a question the compiler can answer for you; it's a choice + `E` mean here" is not a question the compiler can answer for you; it's a choice you make.) Being effect-generic is genuinely *different behaviour* from a fixed annotation, so it must be opted into deliberately. Effect generics are needed *only* when you want to be generic over the callback. Otherwise you annotate the callback's `fn`-type directly, with the same options as any effect set: leave it **unannotated** (the callback may perform any - effects — top), or give an **explicit whitelist** (`f: fn(T) -> U !(io)`) so the - passed function can't use anything outside that set. All three — generic, + effects — top), or give an **explicit whitelist** (`f: fn(T) does(io) -> U`) so + the passed function can't use anything outside that set. All three — generic, unconstrained, whitelist — are explicit choices the author makes; none is inferred. (Syntax provisional; the essential idea is that `effect` is its own kind in the generic list, alongside `type`.) - **Effect abstraction / handling (algebraic effects).** A function that *absorbs* an inner effect and exposes a different, abstract one at a boundary - (e.g. a `log` that does `write` internally but presents `!(logging)`). This is - the algebraic-effects machinery deliberately kept out. The current model is + (e.g. a `log` that does `write` internally but presents `does(logging)`). This + is the algebraic-effects machinery deliberately kept out. The current model is **transparent propagation only** — effects surface unchanged all the way up, - `!()` at the top means "traces to no impure leaf." The transparent model needs - zero new machinery; the absorbing model is a real feature with real weight, - deferred until a concrete need appears. + `does()` at the top means "traces to no impure leaf." The transparent model + needs zero new machinery; the absorbing model is a real feature with real + weight, deferred until a concrete need appears. --- diff --git a/notes/effect-tracking-plan.md b/notes/effect-tracking-plan.md new file mode 100644 index 0000000..d13cd0e --- /dev/null +++ b/notes/effect-tracking-plan.md @@ -0,0 +1,186 @@ +# Effect tracking — implementation plan + +Companion to [`effect-system.md`](./effect-system.md), which specifies the +design (syntax, semantics, resolution rules). This doc is the implementation +side: what to build, in what order, and the decisions made getting here. +Branch: `effect-tracking` (off `develop`). + +Thesis framing: this is the practical, implemented centerpiece backing the +type-system/typechecker/stdlib deep-dive. The MVP below is deliberately +narrow — a single effect atom (`trap`) — chosen so there's a complete, +defensible, working feature to write about rather than a partial general +mechanism. + +## MVP scope + +**In:** +- `does(...)` / `does(*)` / `does()` syntax — parser + AST. +- A single effect atom: `trap`. +- Resolution folded into existing TIR phases (no new phase — see below). +- `wx-fmt` printing of `does(...)` clauses. +- LSP signature display (hover / wherever signatures render) showing `does(...)`. + +**Out (explicitly deferred, not accidentally missing):** +- Arithmetic operators (`+ - * / %`) carry no effect information, even + though div/rem-by-zero traps. wx has no `Add`/`Sub`/`Mul`/`Div` traits — + arithmetic is the primitive `ast::BinaryOp` node, not trait-dispatched + (confirmed: no such traits exist in `std/main.wx` or `mir/mod.rs`). Wiring + operator effects would mean inventing a hardcoded op → effect table ahead + of any real operator-overloading mechanism existing. Known consequence: + `does()` can currently be claimed by a function that actually traps via + division. Documented gap, not a bug — matches the design doc's own §9 + distinction between `does()` and `does(trap)`, just not enforced yet. +- MIR/Opt changes of any kind. No CSE/DCE/dead-call-elimination payoff at + this stage — effect data sits in TIR and stops there. +- Memory-parameterized effects (`read`/`write`/`grow`, §8). +- Trait method effects (§6) — unreachable anyway with no operator traits. +- Effect-generic callbacks (`effect E` generic param, §11). +- `std/main.wx` annotation: done last, as one deliberate isolated pass (see + Snapshot discipline below), not incrementally alongside the mechanism. + +## Key decisions + +### Representation: `EffectSet` + +```rust +pub enum EffectSet { + Top, + Bounded(Box<[DefId]>), +} +``` + +- Not `BTreeSet` — sets are 0–3 elements in practice; a tree is pure + overhead at that size. +- **Not sorted.** Subset-checking (`does(a) ⊆ does(a, b)`) on a handful of + elements is a linear "every element of A present in B" scan either way; + sorting buys nothing here. Order is whatever the source text wrote (or + whatever a checking pass accumulates), and that's already deterministic + for snapshot purposes — re-parsing the same source always yields the same + order, so there's no canonicalization to do. +- General (`Box<[DefId]>`, not a hardcoded `TrapEffect` marker), even though + the MVP only ever populates it with one atom — so a second atom later is + additive, not a rewrite. + +### Storage: on `Function` directly, not a parallel map + +`tir::Function` (`tir/mod.rs:1332`) gets a new field, sitting next to +`result: Option>`: + +```rust +pub effects: Option, +``` + +`None` = unannotated (§4 resolution rule: unannotated ⇒ `Top`, always — +`None` and `Some(Top)` are the same meaning; keeping `None` for "nothing +written" vs `Some(Top)` for "explicitly wrote `does(*)`" is worth keeping +distinct for the formatter/LSP display, so it round-trips what the user +wrote instead of collapsing to a single top representation). + +No separate `SigEntry`-parallel structure. `sig_state: HashMap` exists for re-entrancy tracking during resolution (see +`ensure_signature`'s cycle guard) — it's not where finished data belongs. +Resolved effect data lives on `Function` the same way resolved param/return +types do. + +### Phasing: no new phase + +Two distinct cases, both fit into phases that already exist: + +- **Bodyless leaf resolution** (a `does(atom, ...)` on a body-less function + mints or references atoms) is signature-shaped work — it belongs in + `ensure_signature(def_id)`, alongside where param/return types resolve + today. No new pass needed for this half. +- **Bodied-function checking** (declared effects must be a superset of + every direct callee's declared effects — one-hop only, per §4, never + descending into callee bodies) needs the body, so it folds into the + *existing* `ensure_body(def_id)` phase rather than a new post-`ensure_body` + pass. + +### `trap` is an `#[intrinsic]`, and it already has plumbing + +`#[intrinsic]` is the sole existing mechanism in wx for declaring a +body-less function the compiler knows how to lower directly (`memory_grow`, +`slice_len`, `size_of`, etc. — all in `std/main.wx`, dispatched by name +string in `mir::lower_intrinsic`, `mir/mod.rs:3050`, a big `match name_str` +block ending in `_ => unreachable!("cannot lower unknown intrinsic...")` +at `mir/mod.rs:3577`). Since "an effect is just a body-less function that +self-annotates" (§5), `trap`'s ground-truth atom has to be minted by an +actual body-less function, and body-less functions in wx are only ever +`#[intrinsic]` — so: + +``` +#[intrinsic] +fn trap() does(trap) -> never; +``` + +**Finding: most of the runtime plumbing for this already exists**, just not +exposed as a callable. wx already has `unreachable` as a first-class keyword +expression (`Keyword::Unreachable`, `ast/lexer.rs:1942`; parsed at +`ast/mod.rs:3271`; `ast::Expression::Unreachable`), which already lowers +end-to-end: `tir::ExprKind::Unreachable` (`tir/builder.rs:9605`) → +`mir::ExprKind::Unreachable` (`mir/mod.rs:1814`) → +`opt::ControlNode::Unreachable` (`opt/builder.rs:624`) → +`Instruction::Unreachable` / WASM opcode `0x00` +(`codegen/mod.rs:97,931,1167`). So `trap`'s intrinsic body is just: lower to +the same `Unreachable` node the `unreachable` keyword already produces. No +new codegen instruction needed — one new arm in `lower_intrinsic`'s match. + +**Open question worth resolving early:** the bare `unreachable` keyword +already exists independently of any function call. If someone writes +`unreachable` directly inside a function body (not via `trap()`), does that +also count as invoking the `trap` effect for checking purposes? If not, +`does()` becomes trivially and silently violable by writing `unreachable` +directly instead of calling `trap()` — which defeats the point. Leaning +toward: yes, the body-checking walk should treat a bare +`ExprKind::Unreachable` node the same as a call to the `trap` intrinsic's +`DefId` (both "reference the atom"), not just literal calls to `trap()`. +Needs to be nailed down before checking is implemented, since it changes +what the `ensure_body` walk has to look for (not just call sites). + +## Modules to touch + +| Module | What | +|---|---| +| `ast/lexer.rs` | `does` keyword | +| `ast/mod.rs` (parser) | parse `does(...)` / `does(*)` / `does()` clause between params and return type; AST node for it | +| `tir/mod.rs` | `EffectSet` type; `effects: Option` field on `Function` | +| `tir/builder.rs` | resolve `does(...)` clause in `ensure_signature`; mint/reference atoms for bodyless leaves; check declared ⊇ callees' declared (incl. bare `unreachable`) in `ensure_body`; new diagnostics | +| `std/main.wx` | `#[intrinsic] fn trap() does(trap) -> never;` — added once the mechanism works, annotation of the rest of the stdlib done last as its own pass | +| `mir/mod.rs` | new `"trap"` arm in `lower_intrinsic` (`mir/mod.rs:3050`), lowering to `ExprKind::Unreachable` — the only MIR-side change, and it's just plumbing a new intrinsic name, not effect-aware logic | +| `wx-fmt` | print `does(...)` clauses in function signatures | +| `wx-lsp` | show `does(...)` wherever a function signature is rendered (hover, etc.) | +| tests | inline `TestCase` fixtures in `tir/tests.rs` for resolution + checking, before touching `std/main.wx` | + +## Diagnostics (new) + +- Unresolved effect name in a `does(...)` clause (referenced atom doesn't + resolve to a body-less self-annotating function). +- Declared effects not a superset of a callee's declared effects (the `⊆` + violation, i.e. a bodied function under-declares relative to what it + calls). + +## Suggested order + +1. Syntax: lexer + parser for `does(...)`/`does(*)`/`does()`, AST node. No + semantic meaning yet — just parses and round-trips. +2. `EffectSet` + `Function::effects` field; bodyless-leaf resolution in + `ensure_signature`. Add `trap` intrinsic (`mir::lower_intrinsic` arm + + `std/main.wx` declaration) at this point, so there's a real atom to + resolve against in tests. +3. Bodied-function checking folded into `ensure_body`, including the bare + `unreachable`-counts-as-`trap` decision above. Diagnostics. +4. `wx-fmt` printing. +5. LSP signature display. +6. `std/main.wx` annotation pass — narrow, deliberate, last. One + `INSTA_UPDATE=always` snapshot regen at the end (per CLAUDE.md: any + `std/main.wx` change shifts byte offsets and breaks every snapshot test, + so this must be its own isolated commit, not interleaved with mechanism + work). + +## Snapshot discipline + +Steps 1–5 should be validated against small inline `TestCase` fixtures only +— touching `std/main.wx` before the mechanism is fully working and tested +means repeatedly eating full-suite snapshot churn for no reason. Step 6 is +the one point where `std/main.wx` changes, and it should be a single +isolated pass followed by one `cargo insta accept`. diff --git a/thesis/grammar.ebnf b/thesis/grammar.ebnf deleted file mode 100644 index 0aa784a..0000000 --- a/thesis/grammar.ebnf +++ /dev/null @@ -1,215 +0,0 @@ -(* - This grammar does not encode operator precedence. Instead, it is simplified for readability, making the structure easier to follow. -*) - -digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; -integer = digit , { digit } ; -float = integer , "." , integer ; - -line_comment = "//" , { ? any character except newline ? } ; -skip = { " " | "\t" | "\r" | "\n" | line_comment } ; - -(* grouping *) -open_paren = "(" , skip ; -close_paren = ")" , skip ; -open_brace = "{" , skip ; -close_brace = "}" , skip ; - -(* separators *) -colon = ":" , ( ? not ":" ? ) , skip ; -colon_colon = "::" , skip ; -semi_colon = ";" , skip ; -comma = "," , skip ; -arrow = "->" , skip ; - -(* operators *) -eq = "=" , ( ? not "=" ? ) , skip ; -eq_eq = "==" , skip ; -bang = "!" , ( ? not "=" ? ) , skip ; -bang_eq = "!=" , skip ; -left_shift = "<<" , skip ; -lt_eq = "<=" , skip ; -lt = "<" , ( ? not ("=" | "<") ? ) , skip ; -right_shift = ">>" , skip ; -gt_eq = ">=" , skip ; -gt = ">" , ( ? not "=" ? ) , skip ; -plus = "+" , ( ? not "=" ? ) , skip ; -plus_eq = "+=" , skip ; -minus = "-" , ( ? not "=" ? ) , skip ; -minus_eq = "-=" , skip ; -star = "*" , ( ? not "=" ? ) , skip ; -star_eq = "*=" , skip ; -slash = "/" , ( ? not "=" ? ) , skip ; -slash_eq = "/=" , skip ; -percent = "%" , ( ? not "=" ? ) , skip ; -percent_eq = "%=" , skip ; -or = "||" , skip ; -bit_or = "|" , ( ? not "|" ? ) , skip ; -and = "&&" , skip ; -bit_and = "&" , ( ? not "&" ? ) , skip ; -caret = "^" , skip ; - -end_of_word = ( ? not [a-zA-Z0-9_] ? ) , skip ; - -(* keywords *) -keyword_local = "local" , end_of_word ; -keyword_mut = "mut" , end_of_word ; -keyword_global = "global" , end_of_word ; -keyword_fn = "fn" , end_of_word ; -keyword_if = "if" , end_of_word ; -keyword_else = "else" , end_of_word ; -keyword_loop = "loop" , end_of_word ; -keyword_return = "return" , end_of_word ; -keyword_break = "break" , end_of_word ; -keyword_continue = "continue" , end_of_word ; -keyword_true = "true" , end_of_word ; -keyword_false = "false" , end_of_word ; -keyword_enum = "enum" , end_of_word ; -keyword_as = "as" , end_of_word ; -keyword_unreachable = "unreachable" , end_of_word ; -keyword_export = "export" , end_of_word ; -keyword_placeholder = "_" , end_of_word ; - -keyword = - keyword_local - | keyword_global - | keyword_fn - | keyword_if - | keyword_else - | keyword_loop - | keyword_return - | keyword_break - | keyword_continue - | keyword_true - | keyword_false - | keyword_enum - | keyword_as - | keyword_unreachable - | keyword_export ; - -letter = "A" … "Z" | "a" … "z" ; -identifier = ( letter | "_" ) , { letter | digit | "_" } , skip ; -(* Note: Identifiers must not be keywords. *) - -(* types *) -type_expression = - identifier - | keyword_fn , open_paren , - [ type_expression , { comma , type_expression } , [ comma ] ] , - close_paren , arrow , type_expression ; - -(* expressions *) -expression = - keyword_true - | keyword_false - | keyword_unreachable - | float - | integer - | grouping_expression - | assignment_expr - | binary_expr - | block_expression - | loop_expression - | if_expression - | label_expression - | break_expression - | continue_expression - | return_expression - | identifier ; - -assignment_op = - eq - | plus_eq - | minus_eq - | star_eq - | slash_eq - | percent_eq ; - -binary_op = - eq_eq - | bang_eq - | lt_eq - | lt - | gt_eq - | gt - | bit_and - | caret - | bit_or - | or - | and - | left_shift - | right_shift - | plus - | minus - | star - | slash - | percent ; - -binary_expr = - expression , binary_op , expression - | ( identifier | keyword_placeholder ) , assignment_op , expression ; - -unary_expr = ( bang | minus ) , expression ; -cast_expr = expression , keyword_as , type_expression ; -call_expr = expression , open_paren , - [ expression , { comma , expression } , [ comma ] ] , - close_paren ; -member_expr = expression , colon_colon , identifier ; -grouping_expression = open_paren , expression , close_paren ; -return_expression = keyword_return , [ expression ] ; - -(* statements *) -statement = - expression - | keyword_local , [ keyword_mut ] , identifier , - [ colon , type_expression ] , eq , expression ; - -(* control structures *) -block_expression = - open_brace , { statement , semi_colon } , [ expression ] , close_brace ; - -loop_expression = keyword_loop , block_expression ; - -if_expression = - keyword_if , expression , block_expression , - [ keyword_else , block_expression ] ; - -labelled_expression = block_expression | loop_expression | if_expression ; -label_expression = identifier , colon , labelled_expression ; - -break_expression = keyword_break , [ colon , identifier ] , [ expression ] ; -continue_expression = keyword_continue , [ colon , identifier ] ; - -(* functions and items *) -function_parameter = - identifier , colon , type_expression ; - -function_definition_item = - keyword_fn , identifier , open_paren , - [ function_parameter , { comma , function_parameter } , [ comma ] ] , - close_paren , arrow , type_expression , block_expression ; - -global_definition_item = - keyword_global , [ keyword_mut ] , identifier , - colon , type_expression , eq , expression , semi_colon ; - -export_modifier_item = - keyword_export , ( function_definition_item | global_definition_item ) ; - -enum_variant = - identifier , eq , integer ; - -enum_definition_item = - keyword_enum , identifier , colon , type_expression , - open_brace , - [ enum_variant , { comma , enum_variant } , [ comma ] ] , - close_brace ; - -item = - function_definition_item - | global_definition_item - | export_modifier_item - | enum_definition_item ; - -EOF = ( ? not any character ? ) ; -program = skip , { item } , EOF ; diff --git a/thesis/history.md b/thesis/history.md deleted file mode 100644 index af51c5f..0000000 --- a/thesis/history.md +++ /dev/null @@ -1,70 +0,0 @@ -Dlaczego JavaScript jest problematycznym standardem wykonywania kodu w środowisku WWW? - -🔗 The Weird History of JavaScript -https://www.youtube.com/watch?v=Sh6lK57Cuk4 - -Twórcy technologii internetowych w latach 90. doskonale zdawali sobie sprawę z ogromnego potencjału sieci WWW jako platformy aplikacyjnej. Trudno jednak było wówczas przewidzieć, że po trzech dekadach JavaScript stanie się najpopularniejszym językiem programowania na świecie, wykorzystywanym do tworzenia rozbudowanych aplikacji biznesowych liczących miliony linii kodu. Niewielu mogło przypuszczać, że JavaScript będzie wykonywany po stronie serwera lub że wokół niego powstanie ekosystem obejmujący miliony bibliotek i frameworków. - -Z biegiem czasu JavaScript znacząco ewoluował jako narzędzie programistyczne. Wprowadzenie kompilacji Just-In-Time (JIT) umożliwiło istotne przyspieszenie wykonywania kodu, natomiast nowe standardy języka oraz przeglądarkowe interfejsy API znacznie rozszerzyły jego możliwości. Pomimo tego w języku nadal istnieją fundamentalne ograniczenia wynikające z pierwotnych założeń projektowych. Należą do nich m.in. dynamiczne typowanie, automatyczne zarządzanie pamięcią (garbage collection) oraz kosztowne abstrakcje runtime’owe. Ograniczenia te można zaakceptować lub próbować je częściowo kompensować poprzez narzędzia nadbudowane nad językiem, takie jak TypeScript. - -Nieprzewidywalność wykonania - -🔗 Lin Clark: A Cartoon Intro to WebAssembly | JSConf EU -https://www.youtube.com/watch?v=HktWin_LPf4 - -JavaScript został zaprojektowany jako język wysokiego poziomu o dynamicznym systemie typów. W konsekwencji: - -Każda operacja wymaga weryfikacji typów w czasie wykonania. Kompilatory JIT mogą optymalizować fragmenty kodu, zakładając określone typy danych, jednak w przypadku niespełnienia tych założeń konieczny jest powrót do wolniejszego trybu interpretacji. - -Mechanizm garbage collection może zostać uruchomiony w dowolnym momencie, powodując nieprzewidywalne przerwy w wykonaniu programu. Jest to szczególnie problematyczne w aplikacjach wymagających niskich opóźnień, takich jak gry komputerowe czy systemy przetwarzania audio i wideo. - -Dynamiczne wiązanie metod (dynamic dispatch) wprowadza dodatkowy narzut czasowy, ponieważ wybór konkretnej implementacji metody następuje dopiero w czasie wykonania i wymaga analizy łańcucha prototypów. - -W rezultacie dwa uruchomienia tego samego skryptu mogą charakteryzować się odmienną wydajnością. Problem ten jest dodatkowo potęgowany przez fakt istnienia wielu przeglądarek, wykorzystujących różne silniki JavaScript oraz odmienne strategie optymalizacji. Kod, który działa poprawnie w jednej przeglądarce, może wykazywać znaczne spadki wydajności w innej. - -Google Native Client - -Naturalnym dążeniem programistów było wykorzystanie znanych i sprawdzonych języków programowania do tworzenia aplikacji internetowych, zamiast polegania na dynamicznym języku skryptowym, jakim jest JavaScript. - -🔗 Google I/O 2012 – Life of a Native Client Instruction -https://www.youtube.com/watch?v=KOsJIhmeXoc - -Z tego punktu widzenia uruchamianie w przeglądarce kodu natywnego skompilowanego z języków takich jak C lub C++ wydawało się atrakcyjnym rozwiązaniem. W 2011 roku Google zaproponowało w tym celu technologię Native Client (NaCl). - -Bezpieczeństwo systemu operacyjnego a bezpieczeństwo WWW - -W systemach operacyjnych użytkownik jest ostrzegany przed instalacją aplikacji pochodzących z nieznanych źródeł, ponieważ system nie jest w stanie odróżnić kodu bezpiecznego od złośliwego. Uruchomienie aplikacji wiąże się z pełnym dostępem do zasobów systemowych i przenosi odpowiedzialność za bezpieczeństwo na użytkownika końcowego. - -Model bezpieczeństwa przeglądarek internetowych jest zasadniczo odmienny. Kod stron internetowych uruchamiany jest w izolowanym środowisku (tzw. sandboxie), które ogranicza dostęp do zasobów systemowych i zapewnia separację pomiędzy poszczególnymi stronami. Dzięki temu możliwe jest bezpieczne wykonywanie kodu pochodzącego od stron trzecich. - -Kod natywny domyślnie posiada szeroki dostęp do sprzętu i systemu operacyjnego. Rozwiązanie zaproponowane w Native Client polegało na uruchamianiu dodatkowych procesów oraz statycznej analizie kodu w celu eliminacji potencjalnie niebezpiecznych instrukcji. Podejście to było jednak bardzo złożone, trudne w utrzymaniu oraz nie zostało zaakceptowane przez innych producentów przeglądarek. - -Początkowo NaCl wykorzystywał bezpośrednio kod natywny, co ograniczało go do jednej architektury sprzętowej. W późniejszym etapie wprowadzono język pośredni, kompilowany do kodu natywnego po stronie klienta, co zwiększało narzut wykonania i nadal nie rozwiązywało kluczowych problemów bezpieczeństwa. - -Technologia Native Client spotkała się z szeroką krytyką i ostatecznie została wycofana w 2020 roku, pozostając rozwiązaniem specyficznym dla przeglądarki Google Chrome. - -asm.js - -🔗 From asm.js to Wasm with Emscripten creator Alon Zakai -https://www.youtube.com/watch?v=cv5uQ_hQVE0 - -Alternatywne podejście zaproponował zespół Mozilla. Zamiast uruchamiać kod natywny bezpośrednio w przeglądarce, zaproponowano wykorzystanie JavaScriptu jako celu kompilacji, przy jednoczesnym ograniczeniu generowanego kodu do ściśle zdefiniowanego podzbioru języka. Podzbiór ten miał być łatwy do analizy i optymalizacji przez silniki JavaScript. - -asm.js wprowadzał jawne oznaczanie typów zmiennych oraz eliminował dynamiczne alokacje pamięci, redukując tym samym wpływ garbage collectora. Przykładowa funkcja w asm.js: - -function add(a, b) { - "use asm"; - a = a | 0; - b = b | 0; - return (a + b) | 0; -} - - -Dyrektywa "use asm" informowała silnik JavaScript o możliwości zastosowania agresywniejszych optymalizacji. Operator bitowy OR (|) był wykorzystywany do wymuszenia konwersji typu na 32-bitową liczbę całkowitą, co było istotne, ponieważ JavaScript domyślnie przechowuje wszystkie liczby jako wartości typu float64. - -asm.js intensywnie wykorzystywał również tablice typowane (typed arrays), które umożliwiały częściową kontrolę nad pamięcią i symulowały niskopoziomowe operacje znane z języków systemowych. - -Pomimo tego, że asm.js stanowił istotny dowód koncepcji i wykazał możliwość osiągnięcia wysokiej wydajności w przeglądarce, rozwiązanie to miało poważne wady. Kod skompilowany do asm.js był znacznie większy objętościowo niż kod natywny, co prowadziło do dłuższego czasu pobierania i parsowania. Dodatkowo brak natywnych API wymuszał emulację funkcjonalności takich jak grafika czy system plików za pomocą technologii webowych (WebGL, IndexedDB, WebAudio). - -„And it ran, but obviously it was still kind of a hack” -— Alon Zakai \ No newline at end of file diff --git a/thesis/implementation.md b/thesis/implementation.md deleted file mode 100644 index adbb5db..0000000 --- a/thesis/implementation.md +++ /dev/null @@ -1,224 +0,0 @@ -## 4.1 Implementation Context - -The compiler is implemented in Rust. Development began with a prototype sketched in TypeScript - a familiar language that allowed early experimentation with parsing concepts without committing to a full implementation. It quickly became clear, however, that TypeScript was ill-suited for this domain. The lack of fine-grained numeric types and limited control over memory representation made low-level encoding work unnecessarily cumbersome. Rust offered the necessary control while its strong static guarantees proved valuable when working across multiple intermediate representations that share data structures throughout the pipeline. - -Throughout the pipeline, identifiers and other frequently repeated strings are managed through a string interner provided by an external crate. Rather than allocating and comparing raw strings at each stage, the interner assigns each unique string a compact numeric key on first encounter, reducing identifier comparison to an integer equality check and eliminating redundant heap allocations. This infrastructure is shared across all stages and is established before the pipeline begins. - -## 4.2 Pipeline Overview - -Before the pipeline took its current shape, the Rust and Zig compiler architectures were studied as reference points. Both employ multi-stage intermediate representation strategies, and observing this pattern in mature, production compilers provided early validation that separating compilation into distinct stages was a sound approach. Rather than directly copying either structure, these served as confirmation that the direction being taken independently was reasonable. - -The pipeline itself was not designed upfront as a complete specification. It evolved iteratively throughout development, with each stage introduced in response to concrete engineering challenges encountered along the way. The core principle that emerged from this process is the separation of concerns between transformation stages - attempting to combine multiple kinds of transformations into a single pass consistently introduced complexity and bugs, and each time a new stage was introduced to isolate a specific responsibility, the surrounding code became significantly simpler. - -A further motivation for the multi-stage design was the goal of building a reusable compiler infrastructure rather than a monolithic translation tool. The pipeline is designed so that tooling components - the formatter and the language server - can attach at specific intermediate stages and reuse the compiler's own data structures, rather than operating as separate post-processing tools. This required deliberate thinking about what information each stage must preserve. - -![Pipeline Overview](../web/public/pipeline.webp) - -As shown on the diagram above, the pipeline proceeds from source code through several intermediate representations before producing WASM bytecode. A meaningful architectural boundary exists between the TIR and MIR stages. Everything up to and including TIR is source-aware - intermediate representations at these stages preserve text spans, which are links back to exact positions in the original source file. From MIR onward, text spans are deliberately discarded and the pipeline concerns itself purely with transformation and output correctness. This boundary determines where each tool attaches: the formatter operates on the AST, and the language server on the TIR, both of which retain the source position information their features require. - -## 4.3 Frontend - Lexer & Parser (AST) - -The frontend is responsible for transforming raw source text into an Abstract Syntax Tree - a structured representation of the program that closely mirrors the original source code. It consists of two sequential stages: the lexer, which breaks source text into a stream of tokens, and the parser, which consumes that stream and constructs the AST. - -### Lexer - -The lexer's responsibility is classification - identifying token boundaries and assigning each token a kind. An early design decision concerned how much information to store in each token. An initial approach stored interpreted values directly in the token structure - for example, an integer token would carry both its source span and the already-parsed numeric value. This proved unnecessary and introduced parsing logic into a stage where it did not belong. Moving value interpretation downstream to the parser, which has access to surrounding context, resulted in a simpler token representation with a smaller memory footprint and a cleaner boundary between the two stages. - -### Parser design - hand-written over generated - -Rather than specifying the grammar using a formal notation such as Backus-Naur Form and generating a parser from it, the decision was made to write the parser by hand. Generated parsers introduce an external dependency and typically produce generic AST structures that do not integrate cleanly with a pipeline designed to share representations across compilation, formatting, and language server features. More importantly, a hand-written parser gives direct control over diagnostic quality - error messages can be tailored to the specific grammar and context, rather than being generic parse failures. The added implementation cost was considered worthwhile given these benefits. - -### Pratt parsing - -Parsing expressions - particularly handling operator precedence correctly - is one of the more subtle challenges in writing a parser by hand. The technique adopted here is [Pratt parsing](https://en.wikipedia.org/wiki/Operator-precedence_parser#Pratt_parsing), originally introduced by Vaughan Pratt in 1973, which offers an elegant solution to this problem without requiring explicit grammar rules for each precedence level. - -The central concept is binding power: each operator is assigned a numeric strength that determines how tightly it binds to its operands. Rather than encoding precedence through grammar production rules, the parser uses these values dynamically to decide whether to continue consuming tokens or yield control back up the call stack. - -Pratt parsing also distinguishes between two roles a token can play in an expression. A token acting as a null denotation (nud) begins an expression without requiring a left-hand context - a literal value or a prefix operator are typical examples. A token acting as a left denotation (led) extends an expression that has already been partially parsed, consuming the left operand as part of its own structure. An infix operator like + is a led - it can only be parsed once a left-hand side exists. This distinction maps cleanly onto the expression grammar of this language, where the majority of constructs are expression-oriented and new expression kinds can be added without restructuring the parser. - -### Abstract Syntax Tree - -The [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) produced by the parser serves as the foundation for two consumers beyond the compiler itself. The formatter operates directly on the AST because at this stage the representation most closely mirrors the original source - any later transformation begins to diverge from the written structure in ways that would make faithful pretty-printing difficult. The AST also preserves full source span information for every node, which propagates forward through TIR and is essential for precise diagnostic reporting and language server features. - -## 4.4 Semantic Analysis - Typed Intermediate Representation (TIR) - -The Typed Intermediate Representation is produced by the semantic analysis stage, which is responsible for verifying that a syntactically valid program is also meaningful - that names refer to declared symbols, that expressions have consistent types, and that the program's structure satisfies the language's rules. TIR is the last stage in the pipeline that remains fully source-aware, preserving text spans on every node. This makes it the attachment point for the language server, which requires both semantic information and the ability to map that information back to precise source positions. - -### Two-pass construction - -TIR construction is split into two distinct passes over the program. The first pass - the declaration pass - traverses all top-level items and registers their names and signatures into the symbol table without processing their bodies. This ensures that by the time the second pass begins, every named item in the program is already known to the type checker regardless of the order in which it appears in source. - -The second pass - the definition pass - revisits each item and constructs its full typed representation, resolving symbol references against the populated symbol table and type-checking all expressions. Because all declarations are already resolved, this pass handles forward references and mutual recursion naturally, without requiring the programmer to provide explicit forward declarations. This two-pass design is a direct consequence of wanting to give the programmer ordering freedom - a function can call another defined later in the same file without any additional annotation. - -### Type system design - -The type system was designed with two goals in mind: staying close to the WASM type model to keep code generation straightforward, while providing enough expressiveness to meaningfully improve the developer experience over writing WASM directly. Complexity was deliberately kept low - the type system is not a research contribution but an engineering tool that should stay out of the way. WASM's numeric types - i32, i64, f32, f64 - form its foundation. - -### Untyped constants - -An early question was how to handle integer literals, which do not inherently carry a type. A literal 1 is equally valid as an i8, i16, i32, or i64, as long as its value fits within the target type's range. Some languages resolve this by assigning a default type - Rust, for example, defaults integer literals to i32. While pragmatic, this felt arbitrary. A more principled approach was found in Go's untyped constants, where a literal's type is deferred until context provides enough information to resolve it. This project adopts a similar strategy, with one important difference: there is no fallback default. If neither side of an assignment provides enough type information to resolve a literal's type, the compiler emits a diagnostic error and requires the programmer to be explicit. This keeps all local variable types fully resolved at the TIR stage, which simplifies every subsequent pass. - -### Type inference - -Type inference is implemented as a bidirectional process - type information can flow from the expression being assigned, or from the expected type at the assignment target. If a variable is explicitly annotated with a type, that annotation propagates inward and resolves any untyped literals in the initializer expression. Conversely, if no annotation is present but the expression has a determinable type, that type propagates outward to the binding. This approach aligns with the general principle of [bidirectional type checking](https://ncatlab.org/nlab/show/bidirectional+typechecking), though the implementation here is a simplified variant suited to the language's relatively constrained type system. This design was not derived from a formal specification but arrived at through reasoning about how familiar languages handle the same problem. - -### Error recovery - -When type inference fails - because neither side of an assignment provides sufficient information - the compiler does not halt. Instead, the binding is assigned a sentinel Error type, an internal marker that signals a failed inference. Subsequent stages treat the Error type permissively, allowing them to proceed without cascading failures from a single unresolved type. This makes TIR construction recoverable, meaning the compiler can continue past the first error and report multiple diagnostics in a single pass - a significant improvement to developer experience compared to fail-fast approaches. - -### Unit and Never types - -To motivate two special types in the type system, it helps to consider how WASM executes code. WASM is a stack machine - instructions operate by pushing and popping typed values. The type of an expression can be understood as the state of the stack after that expression executes. A simple instruction like i32.const N pushes a 32-bit integer onto the stack - its type is i32. An instruction like local.set consumes a value from the stack to write into a local variable, leaving the stack unchanged. - -This leads to a natural question: what is the type of an expression that leaves the stack unchanged? It produced nothing - but "nothing" can be represented in two meaningfully different ways. - -Unit represents a computation that completes successfully but produces no meaningful value. Unlike void - which in many languages simply means the absence of a type - Unit is a proper type with exactly one possible value: nothing. This distinction matters because Unit can participate in a type system as a first-class citizen, for example as a type parameter in generic contexts, whereas void cannot. In the context of this language, expressions like assignment map naturally to Unit - the stack is left unchanged, but the expression is still well-typed. - -| Type | Possible states | -| ---- | --------------- | -| Unit | 1 | -| Void | 0 | - - -The Never type addresses a different situation. WASM includes an unreachable instruction, which signals that execution cannot continue - it terminates the program with a trap, and any code following it is by definition unreachable. Never represents a computation that does not produce a value because it does not complete. Known as the [bottom type](https://en.wikipedia.org/wiki/Bottom_type) (⊥) in type theory, and present in languages such as Rust (!) and TypeScript (never), its key property is that it is a subtype of every other type - a computation that never returns can be treated as returning any type, because it will never actually be asked to produce one. In practice, Never serves as a precise marker of unreachable code paths, allowing the type checker to reason correctly about control flow without requiring the programmer to satisfy type constraints in branches that cannot be reached. - -## 4.5 Lowering - Middle Intermediate Representation (MIR) - -The Middle Intermediate Representation was not part of the original pipeline design. It was introduced when it became clear that generating WASM bytecode directly from TIR was impractical - TIR retains high-level language constructs that do not map cleanly onto WASM's flat instruction model, and attempting to handle that translation entirely within the code generation stage produced unnecessary complexity. Introducing a dedicated lowering stage to handle these transformations before code generation significantly simplified the backend and made each stage independently easier to reason about. - -MIR marks the point in the pipeline where source awareness is deliberately abandoned. Text spans are discarded at this stage, and from this point forward the pipeline concerns itself purely with transformation and output correctness. - -### Desugaring and lowering - -MIR is responsible for a set of concrete transformations that bring the representation closer to what the backend requires. Compound assignment operators such as `x += 1` are rewritten as explicit binary assignments `x = x + 1`. Enums, which exist as named constructs in the source language, are lowered into primitive integer constants. String symbols stored in the compiler's string interner are converted to the positional numeric indices that WASM encoding expects. Item ordering is also remapped at this stage so that imported items appear before defined items - a layout requirement imposed by the WASM binary format that was identified during the study of the binary encoding specification. - -### Optimization pass - -MIR is also the intended attachment point for optimization. It sits at the right level of abstraction for this purpose - high-level constructs have already been eliminated, but the representation is not yet committed to a specific instruction sequence. The approach explored here is based on a Data/Control Flow Graph, inspired by the [Sea of Nodes](https://en.wikipedia.org/wiki/Sea_of_nodes), which unifies data and control dependencies into a single graph structure and enables optimization passes such as constant propagation and dead variable elimination. - -A partial implementation was completed - constant propagation and redundant variable elimination work correctly for straight-line code. However, full support for control flow constructs such as loops and conditionals was not completed within the scope of this project. The existing implementation is treated as a foundation for future work rather than a complete feature, and in the meantime the pipeline delegates final optimization to wasm-opt, discussed further in section 4.6. - -## 4.6 Code Generation - -The code generation stage is responsible for translating MIR into WASM bytecode - the final output of the compiler pipeline. Unlike previous stages which operate on tree-structured representations, code generation produces a linear sequence of binary-encoded instructions that conform to the WASM module format. - -### Understanding the target format - -Before implementing code generation, familiarity with the WASM execution model was established by studying the WAT ([WebAssembly Text Format](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Understanding_the_text_format)) - a human-readable representation of WASM bytecode. WAT exposes the structure of a WASM module directly: its imports and exports, function definitions, memory declarations, and the stack-based instruction sequences that form function bodies. Working through WAT provided concrete intuition about how WASM modules are composed and what constraints the binary encoding must satisfy - for example, that imported items must precede defined items in the module layout, which directly informed the index remapping performed at the MIR stage. - -WASM modules are isolated units of execution. By default they have no access to the host environment and can only perform arithmetic, call functions, and manipulate a declared linear memory region. Interaction with the host happens exclusively through explicitly declared imports and exports, which keeps the execution model predictable and portable across runtimes such as browser engines and standalone executors like wasmtime. - -### Binary encoding - -Encoding WASM bytecode directly required engaging with the binary format specification. The primary reference used during this phase was the [wasm-encoder](https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wasm-encoder) crate from the Bytecode Alliance - a well-maintained, production-grade encoding library whose implementation clarified how the specification translates into practice. - -WASM uses LEB128 ([Little Endian Base 128](https://en.wikipedia.org/wiki/LEB128)) encoding for integers - a variable-length encoding scheme that represents small numbers compactly by using only as many bytes as needed. Both signed and unsigned variants are used depending on context. An initial implementation of LEB128 encoding was written from scratch to build familiarity with the format, but was ultimately replaced with the [leb128fmt library](https://docs.rs/leb128fmt/latest/leb128fmt/) - the same dependency used by wasm-encoder - as it was well-tested and the custom implementation offered no meaningful advantage. - -### Simplification of the output pipeline - -An early version of the code generation stage included an intermediate representation intended to support encoding to both binary WASM and WAT simultaneously. This proved to add significant complexity without proportional benefit - WAT output is already well served by existing tooling such as wasm2wat, which disassembles binary WASM reliably and without additional compiler complexity. Removing the custom WAT encoder simplified the backend considerably and improved encoding performance, with no loss of functionality since the text format remains accessible through standard tools. - -### Post-compilation optimization - wasm-opt - -The final optional step in the pipeline is invocation of [wasm-opt](https://github.com/WebAssembly/binaryen), a widely used WASM optimization tool maintained by the Bytecode Alliance. Since the compiler's internal optimization pass remains incomplete, wasm-opt serves as a practical substitute that applies a comprehensive set of optimization passes to the output binary - including dead code elimination, instruction combining, and function inlining. The result is a well-optimized binary without requiring a fully implemented internal optimizer. This step is optional and can be disabled, but is recommended for any output intended for production use. - -## 4.7 Diagnostics & Error Reporting - -A deliberate goal throughout development was to produce diagnostics that are precise, informative, and actionable - not just technically correct. This motivated several earlier design decisions, including the choice to write a hand-written parser rather than use a generated one, and the decision to preserve source text spans through the AST and TIR stages. The diagnostic system is the point where those decisions pay off visibly. - -### Diagnostic structure - -Each diagnostic carries a unique error or warning code, a severity level, a human-readable message, and one or more source spans pointing to the exact location in the source file that caused the issue. Diagnostics are categorised by the pipeline stage that produced them - parse-time errors originate from the AST stage, while semantic warnings and errors originate from TIR - and each category has its own code namespace. This makes it straightforward for a programmer to identify not only what went wrong but where in the compilation process it was detected. - -### Terminal output - -Diagnostics are rendered as rich terminal output using the [codespan-reporting](https://github.com/brendanzab/codespan) crate, a utility library designed for compiler diagnostic rendering. It handles the formatting layer - source excerpts, line numbers, and caret annotations - allowing development effort to focus on the content and precision of diagnostics rather than their presentation. Multi-token spans are underlined across their full extent, and multi-line spans are grouped with bracket notation. Where appropriate, diagnostics include a hint suggesting how to resolve the issue. -Image below shows a representative sample of diagnostic output covering warnings and errors produced across both the AST and TIR stages. - -![Diagnostic sample output](../web/public/diagnostics.webp) - -### Reuse across CLI and LSP - -The diagnostic infrastructure is shared between the command-line interface and the language server. In the CLI, diagnostics are rendered directly to the terminal. In the language server, the same diagnostic data - including span information and severity levels - is forwarded to the editor as LSP diagnostic notifications, which surface as inline underlines and hover messages. This means diagnostic quality improvements benefit both interfaces simultaneously without duplication of logic. - -![Diagnostic sample output in editor](../web/public/diagnostics-lsp.webp) - -## 4.8 Tooling - -A core goal of the compiler architecture was to build a reusable infrastructure rather than a monolithic translation tool. The tooling described in this section - a source formatter and a language server - are direct products of that goal. Both are implemented as consumers of existing pipeline stages rather than independent tools, reusing the compiler's own data structures and attaching at the intermediate representation most suited to their needs. - -### Syntax Formatter (FMT) - -The formatter was initially an unfamiliar component - it was not obvious how configurable line-width formatting could be implemented systematically. Studying the internals of existing formatters like [prettier](https://github.com/prettier/prettier) revealed a common underlying approach which introduce a dedicated intermediate representation for formatting, separate from the compiler's AST. - -The formatter implemented here is based on the [Wadler-Lindig pretty-printing algorithm](https://lindig.github.io/papers/strictly-pretty-2000.pdf), introduced by Philip Wadler and adapted by Christian Lindig, and later popularized in practice by the Prettier formatter. The algorithm separates formatting into two distinct phases. - -In the first phase, the AST is converted into a document IR - an intermediate representation that describes the possible structure of the output without committing to any specific layout. This IR expresses formatting intent through a small set of constructs: flexible line breaks that may or may not be realized depending on available space, hard line breaks that always force a new line, indentation levels, and groupings that define the unit of layout decisions. - -In the second phase, a renderer walks this document IR and makes layout decisions at the group level. For each group, it speculatively measures how wide the group would be if rendered on a single line. If it fits within the configured max_line_width, the group renders flat - line breaks become spaces. If it does not fit, the group breaks - all flexible line breaks within it become newlines. This all-or-nothing behaviour at the group boundary ensures that constructs like function parameter lists either stay on one line together or break onto separate lines together, rather than breaking at arbitrary points. - -This two-phase design cleanly separates the structure of the code from the layout decision, and is what allows formatting behaviour to be governed by a small, well-defined configuration: - -```rust -pub struct RendererConfig { - pub max_line_width: u32, - pub indent_width: u8, - pub trailing_comma: bool, -} -``` - -### Language Server (LSP) - -The language server is built on the [lsp-server](https://docs.rs/lsp-server/latest/lsp_server/) and [lsp-types](https://docs.rs/lsp-types/latest/lsp_types/) crates, which handle the JSON-RPC communication layer of the Language Server Protocol. This allowed implementation effort to focus on semantic features rather than protocol mechanics. As the last component added to the pipeline, the LSP implementation covers the core IDE features - go-to-definition, find-all-references, and hover information - sufficient to demonstrate the value of the compiler infrastructure as a reusable foundation. - -The central data structure enabling semantic navigation is a custom [symbol index](https://en.wikipedia.org/wiki/Symbol_table), constructed in a single pass over the TIR after semantic analysis is complete. Because TIR preserves source text spans, the index can associate semantic information directly with source positions - which is what IDE features require. The index is implemented as a sorted array of span entries, where each entry records a source text range, the kind of symbol at that location, and whether the location is a definition site or a reference site. Both are recorded during construction: definition sites are collected from the program's structural elements, and reference sites from a recursive traversal of all expressions in the TIR. - -Sorting by span start position enables efficient cursor lookup via binary search. Given a cursor position, the index finds the uppermost entry whose start does not exceed the position, then scans backwards through candidates to find the smallest enclosing span - a most specific span selection strategy that correctly handles nested constructs where multiple symbols overlap at a given position. This gives cursor lookup a complexity of O(log n + k), where k is bounded by the nesting depth of the code, making practical behaviour close to O(log n). - -Definition and reference queries perform a linear scan over the full index - O(n) in both cases. This could be improved with an inverted index keyed by symbol identity, but given that source files are not expected to exceed a few hundred lines in the current scope of the language, the performance of a linear scan is entirely acceptable in practice. Optimising the index structure was deprioritised in favour of progressing the core compiler implementation, and remains a straightforward avenue for future improvement. - -## 4.9 Testing - -The compiler is tested at three levels, each targeting a different aspect of correctness. -Unit tests verify the behaviour of individual components in isolation - that the lexer correctly tokenises specific inputs, that type inference resolves expressions to expected types, and that individual transformation passes produce correct output for targeted cases. - -Snapshot tests capture the output of intermediate representations as golden files using the [insta](https://github.com/mitsuhiko/insta) crate - a snapshot testing library for Rust that makes it straightforward to record and review expected output. After each pipeline stage, the resulting structure is serialised and compared against a stored snapshot. Any unintended change to an IR's structure or content causes a mismatch, making regressions immediately visible even when the final compiled output appears correct. For the code generation stage, snapshots are taken on the WAT disassembly of the output binary - produced using the [wasmprinter](https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wasmprinter) crate - rather than on the raw bytecode. This keeps snapshots human-readable and reviewable, making it straightforward to inspect exactly what WASM instructions a given input compiles to. - -End-to-end tests form the final layer and validate the full pipeline from source text to running code. Each test constructs a TestCase - a structure that drives source code through the complete compilation pipeline, from parsing through to binary encoding. If any stage produces diagnostics, they are printed to the terminal and the test fails immediately, ensuring that compilation errors are visible rather than silently swallowed. The resulting bytecode is then loaded into a [wasmtime](https://github.com/bytecodealliance/wasmtime) instance and executed, with the return value asserted against an expected result. The following test illustrates this approach - it compiles a lerp function, runs it through the full pipeline, and asserts that the exported main function returns the correct floating point result: - -```rust -#[test] -fn test_lerp() { - let case = TestCase::new(indoc! {" - fn lerp(a: f32, b: f32, t: f32) -> f32 { - a + (b - a) * t - } - - fn main() -> f32 { - local x = lerp(0.0, 100.0, 0.5); - if x != 50.0 { unreachable } else { x } - } - - export { main } - "}); - - // create a snapshot of the generated WASM in pretty-printed WAT format for review - insta::assert_snapshot!(wasmprinter::print_bytes(&case.bytecode).unwrap()); - - // load the generated bytecode into a wasmtime VM and execute the main function - let engine = wasmtime::Engine::default(); - let module = wasmtime::Module::new(&engine, &case.bytecode).unwrap(); - let linker = wasmtime::Linker::new(&engine); - let mut store = wasmtime::Store::new(&engine, ()); - let instance = linker.instantiate(&mut store, &module).unwrap(); - let main = instance - .get_typed_func::<(), f32>(&mut store, "main") - .unwrap(); - let result = main.call(&mut store, ()).unwrap(); - assert!(result == 50.0, "Expected main() to return 50.0"); -} -``` - -This test also demonstrates several language features in a single case - a function call, floating point arithmetic, a conditional expression, and a module export - making it representative of typical end-to-end coverage. - -Together these three layers provide confidence at each stage of the pipeline independently, as well as across the pipeline as a whole. \ No newline at end of file