diff --git a/crates/ruff_charon/src/lib.rs b/crates/ruff_charon/src/lib.rs index 6d2e496f59501..7c93365814b75 100644 --- a/crates/ruff_charon/src/lib.rs +++ b/crates/ruff_charon/src/lib.rs @@ -29,6 +29,8 @@ //! A `MAY_DISPATCH` row is never a confirmed caller (crai-rs RS-F07). Nothing //! is inferred from names. +pub mod store; + use std::fmt::Write as _; use std::path::Path; diff --git a/crates/ruff_charon/src/main.rs b/crates/ruff_charon/src/main.rs index d84221ba00636..1a88a913c73ae 100644 --- a/crates/ruff_charon/src/main.rs +++ b/crates/ruff_charon/src/main.rs @@ -4,12 +4,20 @@ //! - `rows`: `relation subject object grade file start end`, then `residual` rows and one //! `receipt` row. Exit 3 if the receipt does not conserve. //! - `kythe`: Kythe entries, one JSON object per line. +//! +//! The offline store (`ruff_charon::store`): +//! - `import `: import or refresh one crate; +//! - `stale `: the crates with a changed or missing file; +//! - `dangling `: call rows whose callee no stored crate defines. Exit 1 if any. use std::path::Path; use std::process::ExitCode; fn main() -> ExitCode { let args: Vec = std::env::args().collect(); + if let Some(code) = store_mode(&args) { + return code; + } let flag = |name: &str| { args.iter() .position(|a| a == name) @@ -77,3 +85,62 @@ fn main() -> ExitCode { } ExitCode::SUCCESS } + +fn store_mode(args: &[String]) -> Option { + use ruff_charon::store::Store; + let fail = |e: std::io::Error| { + eprintln!("ruff_charon: {e}"); + ExitCode::from(2) + }; + match ( + args.get(1).map(String::as_str), + args.get(2), + args.get(3), + args.get(4), + ) { + (Some("import"), Some(dir), Some(file), Some(krate)) => { + let llbc = match ruff_charon::load(Path::new(file)) { + Ok(l) => l, + Err(e) => { + eprintln!("ruff_charon: {e:#}"); + return Some(ExitCode::from(2)); + } + }; + Some(match Store::new(dir).import(&llbc, krate) { + Ok(r) => { + println!( + "imported\t{krate}\tharvested={}\trepresented={}\tresidual={}", + r.harvested, r.represented, r.residual + ); + ExitCode::SUCCESS + } + Err(e) => fail(e), + }) + } + (Some("stale"), Some(dir), Some(root), _) => { + Some(match Store::new(dir).stale(Path::new(root)) { + Ok(set) => { + for c in set { + println!("stale\t{c}"); + } + ExitCode::SUCCESS + } + Err(e) => fail(e), + }) + } + (Some("dangling"), Some(dir), _, _) => Some(match Store::new(dir).dangling() { + Ok(rows) => { + for r in &rows { + println!("dangling\t{}\t{}\t{}", r.predicate, r.subject, r.object); + } + if rows.is_empty() { + ExitCode::SUCCESS + } else { + ExitCode::from(1) + } + } + Err(e) => fail(e), + }), + _ => None, + } +} diff --git a/crates/ruff_charon/src/store.rs b/crates/ruff_charon/src/store.rs new file mode 100644 index 0000000000000..bc9abb70ac418 --- /dev/null +++ b/crates/ruff_charon/src/store.rs @@ -0,0 +1,369 @@ +//! The offline Codegraph store: per crate, the relation rows, the residuals and +//! the digests of the source files the rows came from. +//! +//! The artifact discipline is `ruff_r2il::sink`'s (`#version N` + `#schema +//! `, columns appended never reordered, readers key off `#schema` +//! names). `ruff_r2il::sink::RefinedTruthSink` itself is typed to R2IL's +//! `FlatFact`s and is not reused: these rows are call relations, not R2IL. +//! +//! # Incremental updates +//! +//! Charon translates a whole crate, so the unit of update is a crate. A crate +//! is stale when one of its recorded source files changed or vanished +//! ([`Store::stale`]). Refreshing a crate replaces all three of its artifacts; +//! nothing of the old version survives. A crate that depends on a refreshed +//! crate must be refreshed too ([`with_dependents`]): its call rows name items +//! of the dependency, and [`Store::dangling`] reports any call row whose callee +//! is a function of a stored crate that no stored crate defines any more. +//! +//! A file added to a crate is only detected through the file that declares it +//! (`mod x;`), which changes with it. + +use std::collections::{BTreeMap, BTreeSet}; +use std::fs; +use std::io::{self, BufRead, BufReader, Write}; +use std::path::{Path, PathBuf}; + +use crate::{GRADE, Llbc, relations}; + +/// The version of the rows artifact this crate writes and reads. +pub const ROWS_VERSION: u32 = 1; +const ROWS_SCHEMA: &[&str] = &[ + "predicate", + "subject", + "object", + "grade", + "file", + "start", + "end", +]; +const FILES_VERSION: u32 = 1; +const FILES_SCHEMA: &[&str] = &["path", "fnv64"]; +const RESIDUALS_VERSION: u32 = 1; +const RESIDUALS_SCHEMA: &[&str] = &["reason", "subject"]; + +/// One stored relation row. +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +pub struct Row { + pub predicate: String, + pub subject: String, + pub object: String, + pub grade: String, + pub site: Option<(String, usize, usize)>, +} + +/// FNV-1a 64 over bytes, the digest `sag-ra-probe` uses for bodies and files. +#[must_use] +pub fn fnv64(bytes: &[u8]) -> u64 { + bytes.iter().fold(0xcbf2_9ce4_8422_2325u64, |h, &b| { + (h ^ u64::from(b)).wrapping_mul(0x0100_0000_01b3) + }) +} + +/// The source files of `crate_name` as Charon read them, with their digests. +/// Files whose contents Charon did not keep are not listed. +#[must_use] +pub fn crate_files(llbc: &Llbc, crate_name: &str) -> Vec<(String, u64)> { + let mut files: Vec<_> = llbc + .krate + .files + .iter() + .filter(|f| f.crate_name == crate_name) + .filter_map(|f| match (&f.name, &f.contents) { + (charon_lib::ast::FileName::Local(p), Some(text)) => { + Some((p.display().to_string(), fnv64(text.as_bytes()))) + } + _ => None, + }) + .collect(); + files.sort(); + files.dedup(); + files +} + +fn header(out: &mut impl Write, version: u32, schema: &[&str]) -> io::Result<()> { + writeln!(out, "#version {version}")?; + writeln!(out, "#schema {}", schema.join("\t")) +} + +/// Read an artifact: check the version, map the `#schema` names to columns, +/// and return each data line as a name → value map. +fn read_table( + path: &Path, + max_version: u32, + need: &[&str], +) -> io::Result>> { + let bad = |m: String| { + io::Error::new( + io::ErrorKind::InvalidData, + format!("{}: {m}", path.display()), + ) + }; + let mut version = None; + let mut names: Option> = None; + let mut rows = Vec::new(); + for line in BufReader::new(fs::File::open(path)?).lines() { + let line = line?; + if let Some(v) = line.strip_prefix("#version ") { + version = Some( + v.parse::() + .map_err(|e| bad(format!("bad version: {e}")))?, + ); + } else if let Some(s) = line.strip_prefix("#schema ") { + names = Some(s.split('\t').map(str::to_owned).collect()); + } else if !line.is_empty() { + let names = names + .as_ref() + .ok_or_else(|| bad("data before #schema".into()))?; + let cols: Vec<&str> = line.split('\t').collect(); + if cols.len() != names.len() { + return Err(bad(format!( + "{} columns, schema has {}", + cols.len(), + names.len() + ))); + } + rows.push( + names + .iter() + .cloned() + .zip(cols.iter().map(|c| (*c).to_owned())) + .collect(), + ); + } + } + match version { + Some(v) if v <= max_version => {} + Some(v) => return Err(bad(format!("version {v} is newer than {max_version}"))), + None => return Err(bad("no #version".into())), + } + let names = names.unwrap_or_default(); + for n in need { + if !names.iter().any(|x| x == n) { + return Err(bad(format!("schema lacks column {n}"))); + } + } + Ok(rows) +} + +/// A directory of per-crate artifacts. +#[derive(Debug, Clone)] +pub struct Store { + dir: PathBuf, +} + +impl Store { + #[must_use] + pub fn new(dir: impl Into) -> Self { + Self { dir: dir.into() } + } + + fn path(&self, crate_name: &str, suffix: &str) -> PathBuf { + self.dir.join(format!("{crate_name}.{suffix}")) + } + + /// Write `path` through a temporary file and a rename, so a reader never + /// sees half an artifact. + #[expect( + clippy::disallowed_methods, + reason = "ruff/clippy.toml's list is directory-scoped and reaches this \ + workspace-excluded crate; there is no ty System here, plain std::fs is correct" + )] + fn replace(path: &Path, body: &[u8]) -> io::Result<()> { + let tmp = path.with_extension("tmp"); + fs::write(&tmp, body)?; + fs::rename(&tmp, path) + } + + /// Import (or refresh) one crate from its LLBC: replaces its rows, + /// residuals and file digests. Returns the relation receipt; an + /// unconserved receipt is an error and nothing is written. + /// + /// # Errors + /// I/O errors, or `InvalidData` when the receipt does not conserve. + #[expect(clippy::disallowed_methods, reason = "see `replace`")] + pub fn import(&self, llbc: &Llbc, crate_name: &str) -> io::Result { + let (rows, residual, receipt) = relations(&llbc.krate, crate_name); + if !receipt.conserved() { + return Err(io::Error::new( + io::ErrorKind::InvalidData, + format!("{receipt:?}"), + )); + } + fs::create_dir_all(&self.dir)?; + let mut out = Vec::new(); + header(&mut out, ROWS_VERSION, ROWS_SCHEMA)?; + for r in &rows { + let (f, s, e) = r + .site + .as_ref() + .map_or(("-".to_owned(), "-".to_owned(), "-".to_owned()), |s| { + (s.file.clone(), s.start.to_string(), s.end.to_string()) + }); + writeln!( + out, + "{}\t{}\t{}\t{GRADE}\t{f}\t{s}\t{e}", + r.predicate, r.subject, r.object + )?; + } + let mut res = Vec::new(); + header(&mut res, RESIDUALS_VERSION, RESIDUALS_SCHEMA)?; + for r in &residual { + writeln!(res, "{}\t{}", r.reason, r.subject)?; + } + let mut files = Vec::new(); + header(&mut files, FILES_VERSION, FILES_SCHEMA)?; + for (p, d) in crate_files(llbc, crate_name) { + writeln!(files, "{p}\t{d:016x}")?; + } + // Files last: a crate whose digests are present has its rows. + Self::replace(&self.path(crate_name, "rows.tsv"), &out)?; + Self::replace(&self.path(crate_name, "residuals.tsv"), &res)?; + Self::replace(&self.path(crate_name, "files.tsv"), &files)?; + Ok(receipt) + } + + /// The crates in the store, sorted. + /// + /// # Errors + /// I/O errors reading the directory. + #[expect(clippy::disallowed_methods, reason = "see `replace`")] + pub fn crates(&self) -> io::Result> { + let mut out: Vec = fs::read_dir(&self.dir)? + .filter_map(Result::ok) + .filter_map(|e| { + e.file_name() + .to_str()? + .strip_suffix(".files.tsv") + .map(str::to_owned) + }) + .collect(); + out.sort(); + Ok(out) + } + + /// One crate's rows, read by schema names. + /// + /// # Errors + /// I/O or format errors. + pub fn rows(&self, crate_name: &str) -> io::Result> { + let table = read_table( + &self.path(crate_name, "rows.tsv"), + ROWS_VERSION, + ROWS_SCHEMA, + )?; + Ok(table + .into_iter() + .map(|m| { + let site = (m["file"] != "-").then(|| { + ( + m["file"].clone(), + m["start"].parse().unwrap_or(0), + m["end"].parse().unwrap_or(0), + ) + }); + Row { + predicate: m["predicate"].clone(), + subject: m["subject"].clone(), + object: m["object"].clone(), + grade: m["grade"].clone(), + site, + } + }) + .collect()) + } + + /// Every row of every crate, as a set: the form two stores are compared in. + /// + /// # Errors + /// I/O or format errors. + pub fn all_rows(&self) -> io::Result> { + let mut out = BTreeSet::new(); + for c in self.crates()? { + out.extend(self.rows(&c)?); + } + Ok(out) + } + + /// One crate's recorded files and digests. + /// + /// # Errors + /// I/O or format errors. + pub fn files(&self, crate_name: &str) -> io::Result> { + let table = read_table( + &self.path(crate_name, "files.tsv"), + FILES_VERSION, + FILES_SCHEMA, + )?; + table + .into_iter() + .map(|m| { + u64::from_str_radix(&m["fnv64"], 16) + .map(|d| (m["path"].clone(), d)) + .map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e.to_string())) + }) + .collect() + } + + /// The crates with a recorded file that changed or vanished under `root`. + /// + /// # Errors + /// I/O or format errors reading the store. + pub fn stale(&self, root: &Path) -> io::Result> { + let mut out = BTreeSet::new(); + for c in self.crates()? { + for (p, d) in self.files(&c)? { + match fs::read(root.join(&p)) { + Ok(bytes) if fnv64(&bytes) == d => {} + _ => { + out.insert(c.clone()); + break; + } + } + } + } + Ok(out) + } + + /// Call rows whose callee is a function of a stored crate that no stored + /// crate defines: edges left behind by an incomplete refresh. + /// + /// # Errors + /// I/O or format errors. + pub fn dangling(&self) -> io::Result> { + let crates = self.crates()?; + let all = self.all_rows()?; + let defined: BTreeSet<&str> = all + .iter() + .filter(|r| r.predicate == "DEFINES") + .map(|r| r.subject.as_str()) + .collect(); + Ok(all + .iter() + .filter(|r| r.predicate == "CALLS_RESOLVED") + .filter(|r| { + let owner = r.object.split("::").next().unwrap_or(""); + crates.iter().any(|c| c == owner) && !defined.contains(r.object.as_str()) + }) + .cloned() + .collect()) + } +} + +/// `stale` plus every crate that depends on one of them, transitively. +/// `deps` lists (dependent, dependency) pairs, e.g. from `cargo metadata`. +#[must_use] +pub fn with_dependents(stale: &BTreeSet, deps: &[(String, String)]) -> BTreeSet { + let mut out = stale.clone(); + loop { + let before = out.len(); + for (dependent, dependency) in deps { + if out.contains(dependency) { + out.insert(dependent.clone()); + } + } + if out.len() == before { + return out; + } + } +} diff --git a/crates/ruff_charon/tests/data/README.md b/crates/ruff_charon/tests/data/README.md index af5afe1e76631..aaeaf708a893a 100644 --- a/crates/ruff_charon/tests/data/README.md +++ b/crates/ruff_charon/tests/data/README.md @@ -7,5 +7,8 @@ cd rev1/cg_lib && charon cargo --no-dedup-serialized-ast --dest-file cg_lib.llbc cd rev1/cg_app && charon cargo --no-dedup-serialized-ast --dest-file cg_app.llbc +- `cg_lib_rev2.llbc`, `cg_app_rev2.llbc`: the same for `rev2`, which deletes `triple` and + `area_dyn` from `cg_lib` and drops the `area_dyn` call from `cg_app` (the store tests). + - `*.llbc_calls.txt`: the reference output, written by lance-graph `crates/sag-ra-probe/tools/llbc_calls.py `, never by this crate. diff --git a/crates/ruff_charon/tests/data/cg_app_rev2.llbc b/crates/ruff_charon/tests/data/cg_app_rev2.llbc new file mode 100644 index 0000000000000..345a6fd5052e9 --- /dev/null +++ b/crates/ruff_charon/tests/data/cg_app_rev2.llbc @@ -0,0 +1 @@ +{"charon_version":"0.1.297","translated":{"crate_name":"cg_app","options":{"ullbc":false,"no_code_duplication":false,"precise_drops":false,"mir":null,"rustc_args":[],"targets":[],"sysroot":null,"monomorphize":false,"monomorphize_mut":null,"start_from":[],"start_from_if_exists":[],"start_from_attribute":[],"start_from_pub":false,"include":[],"opaque":[],"exclude":[],"extract_opaque_bodies":false,"translate_all_methods":false,"eager_vtables":false,"duplicate_defaulted_methods":false,"lift_associated_types":[],"hide_marker_traits":false,"hide_allocator":false,"no_doc_comments":false,"remove_unused_clauses":false,"remove_unused_self_clauses":false,"remove_adt_clauses":false,"desugar_drops":false,"resugar_drops":false,"detect_drop_flags":false,"ops_to_function_calls":false,"index_to_function_calls":false,"treat_box_as_builtin":false,"no_gen_tuple_structs":false,"raw_consts":false,"inline_anon_consts":false,"consts":null,"unsized_strings":false,"reconstruct_fallible_operations":false,"reconstruct_panic_calls":false,"reconstruct_asserts":false,"reconstruct_matches":false,"deallocate_all_locals":false,"unbind_item_vars":false,"print_original_ullbc":false,"print_ullbc":false,"print_built_llbc":false,"print_llbc":false,"print_layouts":false,"print_safety":false,"dest_dir":null,"dest_file":"/tmp/claude-0/-home-user/d0a0bed8-379e-5aa8-9d05-0698680d647c/scratchpad/cg_app_rev2.llbc","no_dedup_serialized_ast":true,"format":null,"run_with_minirust":false,"no_serialize":false,"skip_borrowck":false,"erase_body_lifetimes":false,"no_typecheck":false,"no_normalize":false,"no_reorder_decls":false,"no_compute_layout_guarantees":false,"abort_on_error":false,"error_on_warnings":false,"preset":null},"target_information":[{"key":"x86_64-unknown-linux-gnu","value":{"arch":"X86_64","vendor":"unknown","os":"Linux","env":"Gnu","cfg_abi":"Unspecified","target_pointer_size":8,"is_little_endian":true,"c_enum_smallest_repr_ty":"I32","primitive_alignments":[{"key":"Bool","value":1},{"key":{"Integer":{"Signed":"I8"}},"value":1},{"key":{"Integer":{"Signed":"I16"}},"value":2},{"key":{"Integer":{"Signed":"I32"}},"value":4},{"key":{"Integer":{"Signed":"I64"}},"value":8},{"key":{"Integer":{"Signed":"I128"}},"value":16},{"key":{"Integer":{"Signed":"Isize"}},"value":8},{"key":{"Integer":{"Unsigned":"U8"}},"value":1},{"key":{"Integer":{"Unsigned":"U16"}},"value":2},{"key":{"Integer":{"Unsigned":"U32"}},"value":4},{"key":{"Integer":{"Unsigned":"U64"}},"value":8},{"key":{"Integer":{"Unsigned":"U128"}},"value":16},{"key":{"Integer":{"Unsigned":"Usize"}},"value":8},{"key":{"Float":"F16"},"value":2},{"key":{"Float":"F32"},"value":4},{"key":{"Float":"F64"},"value":8},{"key":{"Float":"F128"},"value":16},{"key":"Char","value":4}]}}],"runtime_checks":{"ub_checks":true,"overflow_checks":true,"contract_checks":false},"files":[{"id":0,"name":{"Local":"cg_app/src/lib.rs"},"crate_name":"cg_app","contents":"use cg_lib::shapes::{Rect, Shape};\nuse cg_lib::Sq;\n\npub fn run() -> u32 {\n let s = Sq(3);\n let r = Rect(1, 2);\n cg_lib::area_of(&s) + cg_lib::area_of(&r) + s.area() + cg_lib::util::double(2)\n}\n"},{"id":1,"name":{"Local":"cg_lib/src/shapes.rs"},"crate_name":"cg_lib","contents":null},{"id":2,"name":{"Local":"cg_lib/src/lib.rs"},"crate_name":"cg_lib","contents":null},{"id":3,"name":{"Local":"/rustc/library/core/src/lib.rs"},"crate_name":"core","contents":null},{"id":4,"name":{"Local":"/rustc/library/core/src/marker.rs"},"crate_name":"core","contents":null},{"id":5,"name":{"Local":"cg_lib/src/util.rs"},"crate_name":"cg_lib","contents":null}],"item_names":[{"key":{"Type":0},"value":[{"Builtin":[{"Tuple":0},0]}]},{"key":{"Fun":0},"value":[{"Ident":["cg_app",0]},{"Ident":["run",0]}]},{"key":{"Type":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Square",0]}]},{"key":{"Type":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Rect",0]}]},{"key":{"Type":3},"value":[{"Builtin":[{"Tuple":2},0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]}]},{"key":{"Global":0},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]},{"Builtin":["VTable",0]}]},{"key":{"Fun":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["area_of",0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]}]},{"key":{"TraitImpl":0},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}}]},{"key":{"TraitImpl":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}}]},{"key":{"Fun":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Ident":["area",0]}]},{"key":{"Fun":3},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["double",0]}]},{"key":{"Type":4},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]},{"Builtin":["VTable",0]}]},{"key":{"Type":5},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]},{"Builtin":["VTable",0]}]},{"key":{"Global":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Builtin":["VTable",0]}]},{"key":{"Global":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Builtin":["VTable",0]}]},{"key":{"Fun":4},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Ident":["area",0]}]}],"assoc_item_names":[{"types":[],"methods":[],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["area"],"consts":[]}],"short_names":[{"key":{"TraitImpl":0},"value":[{"Ident":["impl_Shape_for_Square",0]}]},{"key":{"TraitImpl":1},"value":[{"Ident":["impl_Shape_for_Rect",0]}]},{"key":{"Fun":2},"value":[{"Impl":{"Trait":0}},{"Ident":["area",0]}]},{"key":{"Global":1},"value":[{"Impl":{"Trait":0}},{"Builtin":["VTable",0]}]},{"key":{"Global":2},"value":[{"Impl":{"Trait":1}},{"Builtin":["VTable",0]}]},{"key":{"Fun":4},"value":[{"Impl":{"Trait":1}},{"Ident":["area",0]}]},{"key":{"Fun":0},"value":[{"Ident":["run",0]}]},{"key":{"Type":2},"value":[{"Ident":["Rect",0]}]},{"key":{"Type":1},"value":[{"Ident":["Square",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["MetaSized",0]}]},{"key":{"Fun":1},"value":[{"Ident":["area_of",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["Sized",0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["Shape",0]}]},{"key":{"Fun":3},"value":[{"Ident":["double",0]}]}],"type_decls":[null,{"def_id":1,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Square",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":7,"col":0},"end":{"line":7,"col":17}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":{"Struct":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":7,"col":18},"end":{"line":7,"col":25}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","4"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},"target_align":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}}}}},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","4"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"discriminator":{"Known":0},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":0}],"inhabited":{"Untagged":"True"},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}},{"def_id":2,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Rect",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":9,"col":0},"end":{"line":9,"col":15}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":{"Struct":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":9,"col":16},"end":{"line":9,"col":23}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":9,"col":25},"end":{"line":9,"col":32}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_1","is_positional":true,"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","8"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Max":[{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,1]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}]}},"target_align":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}}}}},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","4"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}},"discriminator":{"Known":0},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":0},{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":4}],"inhabited":{"Untagged":"True"},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}},{"def_id":3,"item_meta":{"name":[{"Builtin":[{"Tuple":2},0]}],"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[{"index":0,"name":"A","variance":"Covariant"},{"index":1,"name":"B","variance":"Covariant"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"origin":"WhereClauseOnType","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":{"Builtin":"Tuple"},"kind":{"Struct":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_1","is_positional":true,"ty":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":null,"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Max":[{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[0,0]}}},{"Untagged":{"TypeVar":{"Bound":[0,1]}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,0]},{"regions":[]}]},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"},null,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[0,0]}}},{"Untagged":{"TypeVar":{"Bound":[0,1]}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,0]},{"regions":[]}]},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"},null,1]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}]}},"target_align":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}}}}},"align":{"chosen":null,"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}},"discriminator":null,"inhabited":{"Untagged":{"And":[{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}},{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}}]}},"variant_layouts":[{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":null},{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":null}],"inhabited":{"Untagged":{"And":[{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}},{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}}]}},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":{"InheritFrom":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},"marker_traits":null},null,null],"fun_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["cg_app",0]},{"Ident":["run",0]}],"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"source_text":"pub fn run() -> u32 {\n let s = Sq(3);\n let r = Rect(1, 2);\n cg_lib::area_of(&s) + cg_lib::area_of(&r) + s.area() + cg_lib::util::double(2)\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"bound_body_regions":13,"locals":{"arg_count":0,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":16},"end":{"line":4,"col":19}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":1,"name":"s","span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":8},"end":{"line":5,"col":9}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"drop_flag_for":null},{"index":2,"name":"r","span":{"Untagged":{"data":{"file_id":0,"beg":{"line":6,"col":8},"end":{"line":6,"col":9}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"drop_flag_for":null},{"index":3,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":56}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":4,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":45}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":5,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":23}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":6,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":20},"end":{"line":7,"col":22}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":7,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":20},"end":{"line":7,"col":22}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":2},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":8,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":26},"end":{"line":7,"col":45}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":9,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":42},"end":{"line":7,"col":44}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":4},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":10,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":42},"end":{"line":7,"col":44}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":5},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":11,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":45}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}},"drop_flag_for":null},{"index":12,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":48},"end":{"line":7,"col":56}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":13,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":48},"end":{"line":7,"col":49}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":6},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":14,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":56}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}},"drop_flag_for":null},{"index":15,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":59},"end":{"line":7,"col":82}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":16,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":82}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":8},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":18,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":8},"end":{"line":5,"col":9}},"generated_from_span":null}},"id":0,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":8},"end":{"line":5,"col":9}},"generated_from_span":null}},"id":1,"kind":{"StorageLive":11},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":8},"end":{"line":5,"col":9}},"generated_from_span":null}},"id":2,"kind":{"StorageLive":14},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":8},"end":{"line":5,"col":9}},"generated_from_span":null}},"id":3,"kind":{"StorageLive":16},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":8},"end":{"line":5,"col":9}},"generated_from_span":null}},"id":4,"kind":{"StorageLive":1},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":12},"end":{"line":5,"col":17}},"generated_from_span":null}},"id":5,"kind":{"Assign":[{"kind":{"Local":1},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Aggregate":[{"Adt":[{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,null]},[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","3"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":5,"col":8},"end":{"line":5,"col":9}},"generated_from_span":null}},"id":6,"kind":{"Borrowck":{"FakeRead":{"kind":{"Local":1},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":6,"col":8},"end":{"line":6,"col":9}},"generated_from_span":null}},"id":7,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":6,"col":12},"end":{"line":6,"col":22}},"generated_from_span":null}},"id":8,"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Aggregate":[{"Adt":[{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,null]},[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}},{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","2"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":6,"col":8},"end":{"line":6,"col":9}},"generated_from_span":null}},"id":9,"kind":{"Borrowck":{"FakeRead":{"kind":{"Local":2},"ty":{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":10,"kind":{"StorageLive":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":11,"kind":{"StorageLive":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":23}},"generated_from_span":null}},"id":12,"kind":{"StorageLive":5},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":20},"end":{"line":7,"col":22}},"generated_from_span":null}},"id":13,"kind":{"StorageLive":6},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":20},"end":{"line":7,"col":22}},"generated_from_span":null}},"id":14,"kind":{"StorageLive":7},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":20},"end":{"line":7,"col":22}},"generated_from_span":null}},"id":15,"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Untagged":{"Ref":[{"Body":2},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Local":1},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":20},"end":{"line":7,"col":22}},"generated_from_span":null}},"id":16,"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Untagged":{"Ref":[{"Body":2},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":23}},"generated_from_span":null}},"id":18,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":1},"generics":{"regions":[{"Body":8}],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"TraitImpl":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]}}},"args":[{"Move":{"kind":{"Local":6},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}}}],"dest":{"kind":{"Local":5},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":0,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":17,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":22},"end":{"line":7,"col":23}},"generated_from_span":null}},"id":19,"kind":{"StorageDead":6},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":26},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":20,"kind":{"StorageLive":8},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":42},"end":{"line":7,"col":44}},"generated_from_span":null}},"id":21,"kind":{"StorageLive":9},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":42},"end":{"line":7,"col":44}},"generated_from_span":null}},"id":22,"kind":{"StorageLive":10},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":42},"end":{"line":7,"col":44}},"generated_from_span":null}},"id":23,"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Untagged":{"Ref":[{"Body":5},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Local":2},"ty":{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":42},"end":{"line":7,"col":44}},"generated_from_span":null}},"id":24,"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Untagged":{"Ref":[{"Body":4},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Untagged":{"Ref":[{"Body":5},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":26},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":26,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":1},"generics":{"regions":[{"Body":10}],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"TraitImpl":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]}}},"args":[{"Move":{"kind":{"Local":9},"ty":{"Untagged":{"Ref":[{"Body":4},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}}}],"dest":{"kind":{"Local":8},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":1,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":25,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":44},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":27,"kind":{"StorageDead":9},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":28,"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":5},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Copy":{"kind":{"Local":8},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":59,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":11},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,1]}]},"ty":{"Untagged":{"Scalar":"Bool"}}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":5},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Move":{"kind":{"Local":8},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}},"on_failure":{"Panic":null},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":2,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":29,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":30,"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":11},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":44},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":31,"kind":{"StorageDead":8},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":44},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":32,"kind":{"StorageDead":5},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":48},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":33,"kind":{"StorageLive":12},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":48},"end":{"line":7,"col":49}},"generated_from_span":null}},"id":34,"kind":{"StorageLive":13},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":48},"end":{"line":7,"col":49}},"generated_from_span":null}},"id":35,"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Untagged":{"Ref":[{"Body":6},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Local":1},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":48},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":37,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":2},"generics":{"regions":[{"Body":12}],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":13},"ty":{"Untagged":{"Ref":[{"Body":6},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}}}],"dest":{"kind":{"Local":12},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":3,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":36,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":55},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":38,"kind":{"StorageDead":13},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":39,"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":4},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Copy":{"kind":{"Local":12},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":58,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":14},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,1]}]},"ty":{"Untagged":{"Scalar":"Bool"}}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":4},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Move":{"kind":{"Local":12},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}},"on_failure":{"Panic":null},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":4,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":40,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":41,"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":14},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":55},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":42,"kind":{"StorageDead":12},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":55},"end":{"line":7,"col":56}},"generated_from_span":null}},"id":43,"kind":{"StorageDead":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":59},"end":{"line":7,"col":82}},"generated_from_span":null}},"id":44,"kind":{"StorageLive":15},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":59},"end":{"line":7,"col":82}},"generated_from_span":null}},"id":46,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":3},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","2"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}],"dest":{"kind":{"Local":15},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":5,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":45,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":82}},"generated_from_span":null}},"id":47,"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Copy":{"kind":{"Local":15},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":82}},"generated_from_span":null}},"id":57,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,1]}]},"ty":{"Untagged":{"Scalar":"Bool"}}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Move":{"kind":{"Local":15},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}},"on_failure":{"Panic":null},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":6,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":4,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":48,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":82}},"generated_from_span":null}},"id":49,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":81},"end":{"line":7,"col":82}},"generated_from_span":null}},"id":50,"kind":{"StorageDead":15},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":81},"end":{"line":7,"col":82}},"generated_from_span":null}},"id":51,"kind":{"StorageDead":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":52,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":53,"kind":{"StorageDead":1},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":54,"kind":{"StorageDead":10},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":55,"kind":{"StorageDead":7},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":1},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":56,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":1,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["area_of",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":7,"col":0},"end":{"line":7,"col":46}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[{"index":0,"name":"S","variance":"Contravariant"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":7,"col":15},"end":{"line":7,"col":16}},"generated_from_span":null}},"origin":"WhereClauseOnFn","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":7,"col":18},"end":{"line":7,"col":31}},"generated_from_span":null}},"origin":"WhereClauseOnFn","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}},{"Var":{"Bound":[1,0]}}]}],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":"Opaque"},{"def_id":2,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":12,"col":4},"end":{"line":12,"col":25}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":{"TraitImpl":{"impl_ref":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}},"item_id":0,"reuses_default":true}},"body":"Opaque"},{"def_id":3,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["double",0]}],"span":{"Untagged":{"data":{"file_id":5,"beg":{"line":3,"col":0},"end":{"line":3,"col":28}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":"Opaque"},{"def_id":4,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":18,"col":4},"end":{"line":18,"col":25}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":{"TraitImpl":{"impl_ref":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}},"item_id":0,"reuses_default":true}},"body":"Opaque"}],"global_decls":[null,null,null],"trait_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",0]}],"span":{"Untagged":{"data":{"file_id":4,"beg":{"line":158,"col":0},"end":{"line":158,"col":26}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types with a constant size known at compile time."},{"DocComment":""},{"DocComment":" All type parameters have an implicit bound of `Sized`. The special syntax"},{"DocComment":" `?Sized` can be used to remove this bound if it's not appropriate."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" struct Foo(T);"},{"DocComment":" struct Bar(T);"},{"DocComment":""},{"DocComment":" // struct FooUse(Foo<[i32]>); // error: Sized is not implemented for [i32]"},{"DocComment":" struct BarUse(Bar<[i32]>); // OK"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The one exception is the implicit `Self` type of a trait. A trait does not"},{"DocComment":" have an implicit `Sized` bound as this is incompatible with [trait object]s"},{"DocComment":" where, by definition, the trait needs to work with all possible implementors,"},{"DocComment":" and thus could be any size."},{"DocComment":""},{"DocComment":" Although Rust will let you bind `Sized` to a trait, you won't"},{"DocComment":" be able to use it to form a trait object later:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(unused_variables)]"},{"DocComment":" trait Foo { }"},{"DocComment":" trait Bar: Sized { }"},{"DocComment":""},{"DocComment":" struct Impl;"},{"DocComment":" impl Foo for Impl { }"},{"DocComment":" impl Bar for Impl { }"},{"DocComment":""},{"DocComment":" let x: &dyn Foo = &Impl; // OK"},{"DocComment":" // let y: &dyn Bar = &Impl; // error: the trait `Bar` cannot be made into an object"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [trait object]: ../../book/ch17-02-trait-objects.html"},{"Builtin":"Fundamental"}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":"Sized","diagnostic_item":null,"has_errors":false},"src":"Normal","is_unsafe":false,"generics":{"regions":[],"types":[{"index":0,"name":"Self","variance":"Unknown"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":4,"beg":{"line":158,"col":17},"end":{"line":158,"col":26}},"generated_from_span":null}},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":1,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]}],"span":{"Untagged":{"data":{"file_id":4,"beg":{"line":175,"col":0},"end":{"line":175,"col":33}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types with a size that can be determined from pointer metadata."},{"Builtin":"Fundamental"}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":"MetaSized","diagnostic_item":null,"has_errors":false},"src":"Normal","is_unsafe":false,"generics":{"regions":[],"types":[{"index":0,"name":"Self","variance":"Unknown"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[],"vtable":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}},{"def_id":2,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":3,"col":15}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"src":"Normal","is_unsafe":false,"generics":{"regions":[],"types":[{"index":0,"name":"Self","variance":"Unknown"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":5,"col":1}},"generated_from_span":null}},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"area","item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":26}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"TypeVar":{"Bound":[1,0]}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"default":null},"kind":{"TraitMethod":[2,0]}}],"vtable":{"id":5,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}],"trait_impls":[{"def_id":0,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":11,"col":0},"end":{"line":11,"col":21}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"src":"Normal","impl_trait":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}},"is_negative":false,"is_unsafe":false,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":2,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[2,0]}}],"vtable":"Lazy"},{"def_id":1,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":17,"col":0},"end":{"line":17,"col":19}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"src":"Normal","impl_trait":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}},"is_negative":false,"is_unsafe":false,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":4,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[2,0]}}],"vtable":"Lazy"}],"ordered_decls":[{"TraitDecl":{"NonRec":1}},{"TraitDecl":{"NonRec":0}},{"Type":{"NonRec":3}},{"TraitDecl":{"NonRec":2}},{"Fun":{"NonRec":1}},{"Type":{"NonRec":1}},{"Type":{"NonRec":2}},{"Fun":{"NonRec":2}},{"TraitImpl":{"NonRec":0}},{"Fun":{"NonRec":4}},{"TraitImpl":{"NonRec":1}},{"Fun":{"NonRec":3}},{"Fun":{"NonRec":0}}]},"has_errors":false} \ No newline at end of file diff --git a/crates/ruff_charon/tests/data/cg_lib_rev2.llbc b/crates/ruff_charon/tests/data/cg_lib_rev2.llbc new file mode 100644 index 0000000000000..38aa4936201cb --- /dev/null +++ b/crates/ruff_charon/tests/data/cg_lib_rev2.llbc @@ -0,0 +1 @@ +{"charon_version":"0.1.297","translated":{"crate_name":"cg_lib","options":{"ullbc":false,"no_code_duplication":false,"precise_drops":false,"mir":null,"rustc_args":[],"targets":[],"sysroot":null,"monomorphize":false,"monomorphize_mut":null,"start_from":[],"start_from_if_exists":[],"start_from_attribute":[],"start_from_pub":false,"include":[],"opaque":[],"exclude":[],"extract_opaque_bodies":false,"translate_all_methods":false,"eager_vtables":false,"duplicate_defaulted_methods":false,"lift_associated_types":[],"hide_marker_traits":false,"hide_allocator":false,"no_doc_comments":false,"remove_unused_clauses":false,"remove_unused_self_clauses":false,"remove_adt_clauses":false,"desugar_drops":false,"resugar_drops":false,"detect_drop_flags":false,"ops_to_function_calls":false,"index_to_function_calls":false,"treat_box_as_builtin":false,"no_gen_tuple_structs":false,"raw_consts":false,"inline_anon_consts":false,"consts":null,"unsized_strings":false,"reconstruct_fallible_operations":false,"reconstruct_panic_calls":false,"reconstruct_asserts":false,"reconstruct_matches":false,"deallocate_all_locals":false,"unbind_item_vars":false,"print_original_ullbc":false,"print_ullbc":false,"print_built_llbc":false,"print_llbc":false,"print_layouts":false,"print_safety":false,"dest_dir":null,"dest_file":"/tmp/claude-0/-home-user/d0a0bed8-379e-5aa8-9d05-0698680d647c/scratchpad/cg_lib_rev2.llbc","no_dedup_serialized_ast":true,"format":null,"run_with_minirust":false,"no_serialize":false,"skip_borrowck":false,"erase_body_lifetimes":false,"no_typecheck":false,"no_normalize":false,"no_reorder_decls":false,"no_compute_layout_guarantees":false,"abort_on_error":false,"error_on_warnings":false,"preset":null},"target_information":[{"key":"x86_64-unknown-linux-gnu","value":{"arch":"X86_64","vendor":"unknown","os":"Linux","env":"Gnu","cfg_abi":"Unspecified","target_pointer_size":8,"is_little_endian":true,"c_enum_smallest_repr_ty":"I32","primitive_alignments":[{"key":"Bool","value":1},{"key":{"Integer":{"Signed":"I8"}},"value":1},{"key":{"Integer":{"Signed":"I16"}},"value":2},{"key":{"Integer":{"Signed":"I32"}},"value":4},{"key":{"Integer":{"Signed":"I64"}},"value":8},{"key":{"Integer":{"Signed":"I128"}},"value":16},{"key":{"Integer":{"Signed":"Isize"}},"value":8},{"key":{"Integer":{"Unsigned":"U8"}},"value":1},{"key":{"Integer":{"Unsigned":"U16"}},"value":2},{"key":{"Integer":{"Unsigned":"U32"}},"value":4},{"key":{"Integer":{"Unsigned":"U64"}},"value":8},{"key":{"Integer":{"Unsigned":"U128"}},"value":16},{"key":{"Integer":{"Unsigned":"Usize"}},"value":8},{"key":{"Float":"F16"},"value":2},{"key":{"Float":"F32"},"value":4},{"key":{"Float":"F64"},"value":8},{"key":{"Float":"F128"},"value":16},{"key":"Char","value":4}]}}],"runtime_checks":{"ub_checks":true,"overflow_checks":true,"contract_checks":false},"files":[{"id":0,"name":{"Local":"cg_lib/src/lib.rs"},"crate_name":"cg_lib","contents":"pub mod macro_use;\npub mod shapes;\npub mod util;\n\npub use shapes::Square as Sq;\n\npub fn area_of(s: &S) -> u32 {\n s.area()\n}\n\n#[cfg(any())]\npub fn disabled() -> u32 {\n util::double(1)\n}\n"},{"id":1,"name":{"Local":"cg_lib/src/macro_use.rs"},"crate_name":"cg_lib","contents":"use crate::util::twice as t2;\n\npub fn checked() -> u32 {\n assert_eq!(t2(1), 2);\n 1\n}\n"},{"id":2,"name":{"Local":"cg_lib/src/shapes.rs"},"crate_name":"cg_lib","contents":"use crate::util::double;\n\npub trait Shape {\n fn area(&self) -> u32;\n}\n\npub struct Square(pub u32);\n\npub struct Rect(pub u32, pub u32);\n\nimpl Shape for Square {\n fn area(&self) -> u32 {\n double(self.0) / 2 * self.0\n }\n}\n\nimpl Shape for Rect {\n fn area(&self) -> u32 {\n self.0 * self.1\n }\n}\n\nimpl Square {\n pub fn side(&self) -> u32 {\n self.0\n }\n}\n"},{"id":3,"name":{"Local":"cg_lib/src/util.rs"},"crate_name":"cg_lib","contents":"use crate::shapes::Square;\n\npub fn double(x: u32) -> u32 {\n x * 2\n}\n\npub fn twice(x: u32) -> u32 {\n double(x)\n}\n\npub fn unit() -> Square {\n Square(1)\n}\n\nfn private_unused() -> u32 {\n 0\n}\n"},{"id":4,"name":{"Local":"/rustc/library/core/src/lib.rs"},"crate_name":"core","contents":null},{"id":5,"name":{"Local":"/rustc/library/core/src/marker.rs"},"crate_name":"core","contents":null},{"id":6,"name":{"Local":"/rustc/library/core/src/macros/mod.rs"},"crate_name":"core","contents":null},{"id":7,"name":{"Local":"/rustc/library/core/src/panicking.rs"},"crate_name":"core","contents":null},{"id":8,"name":{"Local":"/rustc/library/core/src/option.rs"},"crate_name":"core","contents":null},{"id":9,"name":{"Local":"/rustc/library/core/src/fmt/mod.rs"},"crate_name":"core","contents":null},{"id":10,"name":{"Local":"/rustc/library/core/src/fmt/num.rs"},"crate_name":"core","contents":null},{"id":11,"name":{"Local":"/rustc/library/core/src/result.rs"},"crate_name":"core","contents":null}],"item_names":[{"key":{"Type":0},"value":[{"Builtin":[{"Tuple":0},0]}]},{"key":{"Fun":0},"value":[{"Ident":["cg_lib",0]},{"Ident":["area_of",0]}]},{"key":{"Fun":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["macro_use",0]},{"Ident":["checked",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]}]},{"key":{"Type":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Square",0]}]},{"key":{"Type":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Rect",0]}]},{"key":{"TraitImpl":0},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}}]},{"key":{"TraitImpl":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}}]},{"key":{"Fun":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["double",0]}]},{"key":{"Fun":3},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["twice",0]}]},{"key":{"Fun":4},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["unit",0]}]},{"key":{"Fun":5},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["private_unused",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",0]}]},{"key":{"Type":3},"value":[{"Builtin":[{"Tuple":2},0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]}]},{"key":{"Global":0},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]},{"Builtin":["VTable",0]}]},{"key":{"Type":4},"value":[{"Ident":["core",0]},{"Ident":["panicking",0]},{"Ident":["AssertKind",0]}]},{"key":{"Type":5},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}]},{"key":{"Type":6},"value":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Arguments",0]}]},{"key":{"Global":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["macro_use",0]},{"Ident":["checked",0]},{"Builtin":["PromotedConst",0]}]},{"key":{"Fun":6},"value":[{"Ident":["core",0]},{"Ident":["panicking",0]},{"Ident":["assert_failed",0]}]},{"key":{"TraitDecl":3},"value":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Debug",0]}]},{"key":{"TraitImpl":2},"value":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["num",0]},{"Impl":{"Trait":2}}]},{"key":{"Type":7},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]},{"Builtin":["VTable",0]}]},{"key":{"Global":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Builtin":["VTable",0]}]},{"key":{"Fun":7},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Ident":["area",0]}]},{"key":{"Global":3},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Builtin":["VTable",0]}]},{"key":{"Fun":8},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Ident":["area",0]}]},{"key":{"Fun":9},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"kind":"InherentImplBlock"}}},{"Ident":["side",0]}]},{"key":{"Type":8},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]},{"Builtin":["VTable",0]}]},{"key":{"Fun":10},"value":[{"Ident":["cg_lib",0]},{"Ident":["macro_use",0]},{"Ident":["checked",0]},{"Builtin":["PromotedConst",0]}]},{"key":{"Type":9},"value":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Debug",0]},{"Builtin":["VTable",0]}]},{"key":{"Type":10},"value":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Formatter",0]}]},{"key":{"Type":11},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Ident":["Result",0]}]},{"key":{"Type":12},"value":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Error",0]}]},{"key":{"Global":4},"value":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["num",0]},{"Impl":{"Trait":2}},{"Builtin":["VTable",0]}]},{"key":{"Fun":11},"value":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["num",0]},{"Impl":{"Trait":2}},{"Ident":["fmt",0]}]}],"assoc_item_names":[{"types":[],"methods":["area"],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["fmt"],"consts":[]}],"short_names":[{"key":{"TraitImpl":0},"value":[{"Ident":["impl_Shape_for_Square",0]}]},{"key":{"TraitImpl":1},"value":[{"Ident":["impl_Shape_for_Rect",0]}]},{"key":{"TraitImpl":2},"value":[{"Ident":["impl_Debug_for_u32",0]}]},{"key":{"Global":2},"value":[{"Impl":{"Trait":0}},{"Builtin":["VTable",0]}]},{"key":{"Fun":7},"value":[{"Impl":{"Trait":0}},{"Ident":["area",0]}]},{"key":{"Global":3},"value":[{"Impl":{"Trait":1}},{"Builtin":["VTable",0]}]},{"key":{"Fun":8},"value":[{"Impl":{"Trait":1}},{"Ident":["area",0]}]},{"key":{"Global":4},"value":[{"Impl":{"Trait":2}},{"Builtin":["VTable",0]}]},{"key":{"Fun":11},"value":[{"Ident":["fmt",0]}]},{"key":{"Type":4},"value":[{"Ident":["AssertKind",0]}]},{"key":{"Type":1},"value":[{"Ident":["Square",0]}]},{"key":{"Fun":2},"value":[{"Ident":["double",0]}]},{"key":{"Fun":9},"value":[{"Ident":["side",0]}]},{"key":{"Fun":0},"value":[{"Ident":["area_of",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["Sized",0]}]},{"key":{"Fun":5},"value":[{"Ident":["private_unused",0]}]},{"key":{"Fun":6},"value":[{"Ident":["assert_failed",0]}]},{"key":{"Fun":4},"value":[{"Ident":["unit",0]}]},{"key":{"Type":10},"value":[{"Ident":["Formatter",0]}]},{"key":{"Type":6},"value":[{"Ident":["Arguments",0]}]},{"key":{"Type":11},"value":[{"Ident":["Result",0]}]},{"key":{"Type":2},"value":[{"Ident":["Rect",0]}]},{"key":{"Type":12},"value":[{"Ident":["Error",0]}]},{"key":{"Fun":1},"value":[{"Ident":["checked",0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["MetaSized",0]}]},{"key":{"Type":5},"value":[{"Ident":["Option",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["Shape",0]}]},{"key":{"Global":1},"value":[{"Builtin":["PromotedConst",0]}]},{"key":{"Fun":10},"value":[{"Builtin":["PromotedConst",0]}]},{"key":{"TraitDecl":3},"value":[{"Ident":["Debug",0]}]},{"key":{"Fun":3},"value":[{"Ident":["twice",0]}]}],"type_decls":[{"def_id":0,"item_meta":{"name":[{"Builtin":[{"Tuple":0},0]}],"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":{"Builtin":"Tuple"},"kind":{"Struct":[]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","0"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","0"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"discriminator":{"Known":0},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[],"inhabited":{"Untagged":"True"},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}},{"def_id":1,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Square",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":7,"col":0},"end":{"line":7,"col":27}},"generated_from_span":null}},"source_text":"pub struct Square(pub u32);","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":{"Struct":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":7,"col":18},"end":{"line":7,"col":25}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","4"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},"target_align":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}}}}},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","4"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"discriminator":{"Known":0},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":0}],"inhabited":{"Untagged":"True"},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}},{"def_id":2,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Rect",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":9,"col":0},"end":{"line":9,"col":34}},"generated_from_span":null}},"source_text":"pub struct Rect(pub u32, pub u32);","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":{"Struct":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":9,"col":16},"end":{"line":9,"col":23}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":9,"col":25},"end":{"line":9,"col":32}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_1","is_positional":true,"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","8"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Max":[{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,1]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}]}},"target_align":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}}}}},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","4"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}},"discriminator":{"Known":0},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":0},{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":4}],"inhabited":{"Untagged":"True"},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}},{"def_id":3,"item_meta":{"name":[{"Builtin":[{"Tuple":2},0]}],"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[{"index":0,"name":"A","variance":"Covariant"},{"index":1,"name":"B","variance":"Covariant"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"origin":"WhereClauseOnType","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":{"Builtin":"Tuple"},"kind":{"Struct":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_1","is_positional":true,"ty":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":null,"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Max":[{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[0,0]}}},{"Untagged":{"TypeVar":{"Bound":[0,1]}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,0]},{"regions":[]}]},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"},null,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[0,0]}}},{"Untagged":{"TypeVar":{"Bound":[0,1]}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,0]},{"regions":[]}]},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"},null,1]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}]}},"target_align":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}}}}},"align":{"chosen":null,"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}},"discriminator":null,"inhabited":{"Untagged":{"And":[{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}},{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}}]}},"variant_layouts":[{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":null},{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":null}],"inhabited":{"Untagged":{"And":[{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}},{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}}]}},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":{"InheritFrom":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},"marker_traits":null},{"def_id":4,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["panicking",0]},{"Ident":["AssertKind",0]}],"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":386,"col":0},"end":{"line":386,"col":19}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":{"Enum":[{"id":0,"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":387,"col":4},"end":{"line":387,"col":6}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Eq","fields":[],"discriminant":{"Signed":["Isize","0"]}},{"id":1,"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":388,"col":4},"end":{"line":388,"col":6}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Ne","fields":[],"discriminant":{"Signed":["Isize","1"]}},{"id":2,"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":389,"col":4},"end":{"line":389,"col":9}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Match","fields":[],"discriminant":{"Signed":["Isize","2"]}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","0"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"discriminator":{"Branch":{"offset":{"guarantee":null,"chosen":0},"int_ty":{"Unsigned":"U8"},"children":[[{"start":{"Unsigned":["U8","0"]},"end":{"Unsigned":["U8","0"]}},{"Known":0}],[{"start":{"Unsigned":["U8","1"]},"end":{"Unsigned":["U8","1"]}},{"Known":1}],[{"start":{"Unsigned":["U8","2"]},"end":{"Unsigned":["U8","2"]}},{"Known":2}]],"fallback":"Invalid"}},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[],"inhabited":{"Untagged":"True"},"tagger":[[0,{"Unsigned":["U8","0"]}]]},{"field_offsets":[],"inhabited":{"Untagged":"True"},"tagger":[[0,{"Unsigned":["U8","1"]}]]},{"field_offsets":[],"inhabited":{"Untagged":"True"},"tagger":[[0,{"Unsigned":["U8","2"]}]]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}},{"def_id":5,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}],"span":{"Untagged":{"data":{"file_id":8,"beg":{"line":598,"col":0},"end":{"line":598,"col":18}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The `Option` type. See [the module level documentation](self) for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":"Option","diagnostic_item":"Option","has_errors":false},"generics":{"regions":[],"types":[{"index":0,"name":"T","variance":"Covariant"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":8,"beg":{"line":598,"col":16},"end":{"line":598,"col":17}},"generated_from_span":null}},"origin":"WhereClauseOnType","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":{"Enum":[{"id":0,"span":{"Untagged":{"data":{"file_id":8,"beg":{"line":602,"col":4},"end":{"line":602,"col":8}},"generated_from_span":null}},"attr_info":{"attributes":[{"DocComment":" No value."}],"inline":null,"rename":null,"public":true},"name":"None","fields":[],"discriminant":{"Signed":["Isize","0"]}},{"id":1,"span":{"Untagged":{"data":{"file_id":8,"beg":{"line":606,"col":4},"end":{"line":606,"col":8}},"generated_from_span":null}},"attr_info":{"attributes":[{"DocComment":" Some value of type `T`."}],"inline":null,"rename":null,"public":true},"name":"Some","fields":[{"span":{"Untagged":{"data":{"file_id":8,"beg":{"line":606,"col":55},"end":{"line":606,"col":56}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}],"discriminant":{"Signed":["Isize","1"]}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":null,"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":5,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[0,0]}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,0]},{"regions":[]}]},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null},1,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},"target_align":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}}}}},"align":{"chosen":null,"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"discriminator":null,"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[],"inhabited":{"Untagged":"True"},"tagger":[]},{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":null}],"inhabited":{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":null},{"def_id":6,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Arguments",0]}],"span":{"Untagged":{"data":{"file_id":9,"beg":{"line":716,"col":0},"end":{"line":716,"col":24}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" This structure represents a safely precompiled version of a format string"},{"DocComment":" and its arguments. This cannot be generated at runtime because it cannot"},{"DocComment":" safely be done, so no constructors are given and the fields are private"},{"DocComment":" to prevent modification."},{"DocComment":""},{"DocComment":" The [`format_args!`] macro will safely create an instance of this structure."},{"DocComment":" The macro validates the format string at compile-time so usage of the"},{"DocComment":" [`write()`] and [`format()`] functions can be safely performed."},{"DocComment":""},{"DocComment":" You can use the `Arguments<'a>` that [`format_args!`] returns in `Debug`"},{"DocComment":" and `Display` contexts as seen below. The example also shows that `Debug`"},{"DocComment":" and `Display` format to the same thing: the interpolated format string"},{"DocComment":" in `format_args!`."},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" let debug = format!(\"{:?}\", format_args!(\"{} foo {:?}\", 1, 2));"},{"DocComment":" let display = format!(\"{}\", format_args!(\"{} foo {:?}\", 1, 2));"},{"DocComment":" assert_eq!(\"1 foo 2\", display);"},{"DocComment":" assert_eq!(display, debug);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`format()`]: ../../std/fmt/fn.format.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":"FormatArguments","diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":"'a","variance":"Covariant","mutability":"Shared","late_bound":false}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":"Opaque","layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","16"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":null},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","8"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":null},"discriminator":{"Known":0},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[{"guarantee":null,"chosen":0},{"guarantee":null,"chosen":8}],"inhabited":{"Untagged":"True"},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":null},null,null,null,{"def_id":10,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Formatter",0]}],"span":{"Untagged":{"data":{"file_id":9,"beg":{"line":561,"col":0},"end":{"line":561,"col":24}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Configuration for formatting."},{"DocComment":""},{"DocComment":" A `Formatter` represents various options related to formatting. Users do not"},{"DocComment":" construct `Formatter`s directly; a mutable reference to one is passed to"},{"DocComment":" the `fmt` method of all formatting traits, like [`Debug`] and [`Display`]."},{"DocComment":""},{"DocComment":" To interact with a `Formatter`, you'll call various methods to change the"},{"DocComment":" various options related to formatting. For examples, please see the"},{"DocComment":" documentation of the methods defined on `Formatter` below."}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":"Formatter","has_errors":false},"generics":{"regions":[{"index":0,"name":"'a","variance":"Invariant","mutability":"Mutable","late_bound":false}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":[{"Var":{"Bound":[1,0]}},{"Var":{"Bound":[1,0]}}]}],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":"Opaque","layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","24"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":null},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","8"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":null},"discriminator":{"Known":0},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[{"guarantee":null,"chosen":16},{"guarantee":null,"chosen":0}],"inhabited":{"Untagged":"True"},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":null},{"def_id":11,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Ident":["Result",0]}],"span":{"Untagged":{"data":{"file_id":11,"beg":{"line":558,"col":0},"end":{"line":558,"col":21}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" `Result` is a type that represents either success ([`Ok`]) or failure ([`Err`])."},{"DocComment":""},{"DocComment":" See the [module documentation](self) for details."}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":"Result","has_errors":false},"generics":{"regions":[],"types":[{"index":0,"name":"T","variance":"Covariant"},{"index":1,"name":"E","variance":"Covariant"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":11,"beg":{"line":558,"col":16},"end":{"line":558,"col":17}},"generated_from_span":null}},"origin":"WhereClauseOnType","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"Untagged":{"data":{"file_id":11,"beg":{"line":558,"col":19},"end":{"line":558,"col":20}},"generated_from_span":null}},"origin":"WhereClauseOnType","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,1]}}}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":{"Enum":[{"id":0,"span":{"Untagged":{"data":{"file_id":11,"beg":{"line":562,"col":4},"end":{"line":562,"col":6}},"generated_from_span":null}},"attr_info":{"attributes":[{"DocComment":" Contains the success value"}],"inline":null,"rename":null,"public":true},"name":"Ok","fields":[{"span":{"Untagged":{"data":{"file_id":11,"beg":{"line":562,"col":53},"end":{"line":562,"col":54}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}],"discriminant":{"Signed":["Isize","0"]}},{"id":1,"span":{"Untagged":{"data":{"file_id":11,"beg":{"line":567,"col":4},"end":{"line":567,"col":7}},"generated_from_span":null}},"attr_info":{"attributes":[{"DocComment":" Contains the error value"}],"inline":null,"rename":null,"public":true},"name":"Err","fields":[{"span":{"Untagged":{"data":{"file_id":11,"beg":{"line":567,"col":54},"end":{"line":567,"col":55}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"_0","is_positional":true,"ty":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}],"discriminant":{"Signed":["Isize","1"]}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":null,"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Max":[{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":11,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[0,0]}}},{"Untagged":{"TypeVar":{"Bound":[0,1]}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,0]},{"regions":[]}]},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,1]},{"regions":[]}]},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,1]}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null},0,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":11,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[0,0]}}},{"Untagged":{"TypeVar":{"Bound":[0,1]}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,0]},{"regions":[]}]},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"Clause":[{"Bound":[1,1]},{"regions":[]}]},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,1]}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null},1,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}]}},"target_align":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}}}}},"align":{"chosen":null,"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}},"discriminator":null,"inhabited":{"Untagged":{"Or":[{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}},{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}}]}},"variant_layouts":[{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":null}],"inhabited":{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}}},"tagger":[]},{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":null}],"inhabited":{"Untagged":{"GenericType":{"Untagged":{"TypeVar":{"Bound":[0,1]}}}}},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":null},{"def_id":12,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Error",0]}],"span":{"Untagged":{"data":{"file_id":9,"beg":{"line":111,"col":0},"end":{"line":111,"col":16}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The error type which is returned from formatting a message into a stream."},{"DocComment":""},{"DocComment":" This type does not support transmission of an error other than that an error"},{"DocComment":" occurred. This is because, despite the existence of this error,"},{"DocComment":" string formatting is considered an infallible operation."},{"DocComment":" `fmt()` implementors should not return this `Error` unless they received it from their"},{"DocComment":" [`Formatter`]. The only time your code should create a new instance of this"},{"DocComment":" error is when implementing `fmt::Write`, in order to cancel the formatting operation when"},{"DocComment":" writing to the underlying stream fails."},{"DocComment":""},{"DocComment":" Any extra information must be arranged to be transmitted through some other means,"},{"DocComment":" such as storing it in a field to be consulted after the formatting operation has been"},{"DocComment":" cancelled. (For example, this is how [`std::io::Write::write_fmt()`] propagates IO errors"},{"DocComment":" during writing.)"},{"DocComment":""},{"DocComment":" This type, `fmt::Error`, should not be"},{"DocComment":" confused with [`std::io::Error`] or [`std::error::Error`], which you may also"},{"DocComment":" have in scope."},{"DocComment":""},{"DocComment":" [`std::io::Error`]: ../../std/io/struct.Error.html"},{"DocComment":" [`std::io::Write::write_fmt()`]: ../../std/io/trait.Write.html#method.write_fmt"},{"DocComment":" [`std::error::Error`]: ../../std/error/trait.Error.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" use std::fmt::{self, write};"},{"DocComment":""},{"DocComment":" let mut output = String::new();"},{"DocComment":" if let Err(fmt::Error) = write(&mut output, format_args!(\"Hello {}!\", \"world\")) {"},{"DocComment":" panic!(\"An error occurred\");"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"Normal","kind":{"Struct":[]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","0"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","0"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}}}},"discriminator":{"Known":0},"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[],"inhabited":{"Untagged":"True"},"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":null}}}],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}}],"fun_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["area_of",0]}],"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"source_text":"pub fn area_of(s: &S) -> u32 {\n s.area()\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[{"index":0,"name":"S","variance":"Contravariant"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":15},"end":{"line":7,"col":16}},"generated_from_span":null}},"origin":"WhereClauseOnFn","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":18},"end":{"line":7,"col":31}},"generated_from_span":null}},"origin":"WhereClauseOnFn","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}},{"Var":{"Bound":[1,0]}}]}],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"bound_body_regions":4,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":43},"end":{"line":7,"col":46}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":1,"name":"s","span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":33},"end":{"line":7,"col":34}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"Shared"]}},"drop_flag_for":null},{"index":2,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":4},"end":{"line":8,"col":5}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":2},{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"Shared"]}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":4},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":3,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":4},"end":{"line":8,"col":5}},"generated_from_span":null}},"id":0,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":4},"end":{"line":8,"col":5}},"generated_from_span":null}},"id":1,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":4},"end":{"line":8,"col":5}},"generated_from_span":null}},"id":2,"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Untagged":{"Ref":[{"Body":2},{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"TypeVar":{"Bound":[0,0]}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":4},"end":{"line":8,"col":12}},"generated_from_span":null}},"id":4,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Trait":[{"Untagged":{"kind":{"Clause":[{"Bound":[0,1]},{"regions":[]}]},"trait_decl_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[0,0]}}}],"const_generics":[],"trait_refs":[]}}}},0]},"generics":{"regions":[{"Body":3}],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":2},"ty":{"Untagged":{"Ref":[{"Body":2},{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"Shared"]}}}}],"dest":{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":0,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":3,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":11},"end":{"line":8,"col":12}},"generated_from_span":null}},"id":5,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":9,"col":1},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":6,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":1,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["macro_use",0]},{"Ident":["checked",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"source_text":"pub fn checked() -> u32 {\n assert_eq!(t2(1), 2);\n 1\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"bound_body_regions":56,"locals":{"arg_count":0,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":20},"end":{"line":3,"col":23}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":1,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":14},"end":{"line":45,"col":31}}}},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},{"Untagged":{"Ref":[{"Body":10},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":11},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}},"drop_flag_for":null},{"index":2,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":15},"end":{"line":45,"col":21}}}},"ty":{"Untagged":{"Ref":[{"Body":14},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":3,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":15},"end":{"line":4,"col":20}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":4,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"ty":{"Untagged":{"Ref":[{"Body":15},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":5,"name":"left_val","span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":46,"col":13},"end":{"line":46,"col":21}}}},"ty":{"Untagged":{"Ref":[{"Body":16},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":6,"name":"right_val","span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":46,"col":23},"end":{"line":46,"col":32}}}},"ty":{"Untagged":{"Ref":[{"Body":17},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":7,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":20},"end":{"line":47,"col":45}}}},"ty":{"Untagged":{"Scalar":"Bool"}},"drop_flag_for":null},{"index":8,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":21},"end":{"line":47,"col":30}}}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":9,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":34},"end":{"line":47,"col":44}}}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":10,"name":"kind","span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":48,"col":24},"end":{"line":48,"col":28}}}},"ty":{"Untagged":{"Adt":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"drop_flag_for":null},{"index":11,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":20},"end":{"line":52,"col":113}}}},"ty":{"Untagged":"Never"},"drop_flag_for":null},{"index":12,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":53},"end":{"line":52,"col":57}}}},"ty":{"Untagged":{"Adt":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"drop_flag_for":null},{"index":13,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":59},"end":{"line":52,"col":69}}}},"ty":{"Untagged":{"Ref":[{"Body":18},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":14,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":59},"end":{"line":52,"col":69}}}},"ty":{"Untagged":{"Ref":[{"Body":19},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":15,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":71},"end":{"line":52,"col":82}}}},"ty":{"Untagged":{"Ref":[{"Body":20},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":16,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":71},"end":{"line":52,"col":82}}}},"ty":{"Untagged":{"Ref":[{"Body":21},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":17,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":84},"end":{"line":52,"col":112}}}},"ty":{"Untagged":{"Adt":{"id":5,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":31}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null}}},"drop_flag_for":null},{"index":18,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"ty":{"Untagged":{"Ref":[{"Body":34},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":6,"col":1}},"generated_from_span":null}},"id":13,"statements":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":44,"col":40},"end":{"line":56,"col":5}}}},"id":7,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":44,"col":40},"end":{"line":56,"col":5}}}},"id":8,"kind":{"StorageLive":18},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":14},"end":{"line":45,"col":31}}}},"id":10,"kind":{"StorageLive":1},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":15},"end":{"line":45,"col":21}}}},"id":11,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":15},"end":{"line":4,"col":20}},"generated_from_span":null}},"id":12,"kind":{"StorageLive":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":15},"end":{"line":4,"col":20}},"generated_from_span":null}},"id":14,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":3},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}],"dest":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"id":4,"statements":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"id":13,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":15},"end":{"line":45,"col":21}}}},"id":15,"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Untagged":{"Ref":[{"Body":14},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"id":16,"kind":{"StorageLive":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"id":17,"kind":{"Assign":[{"kind":{"Local":18},"ty":{"Untagged":{"Ref":[{"Body":34},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Use":[{"Copy":{"kind":{"Global":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"ty":{"Untagged":{"Ref":[{"Body":35},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"id":18,"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Untagged":{"Ref":[{"Body":15},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":18},"ty":{"Untagged":{"Ref":[{"Body":34},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":14},"end":{"line":45,"col":31}}}},"id":19,"kind":{"Assign":[{"kind":{"Local":1},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},{"Untagged":{"Ref":[{"Body":10},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":11},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Aggregate":[{"Adt":[{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":36},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},{"Untagged":{"Ref":[{"Body":37},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":38},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":39},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":40},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"},null,null]},[{"Move":{"kind":{"Local":2},"ty":{"Untagged":{"Ref":[{"Body":14},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}}},{"Move":{"kind":{"Local":4},"ty":{"Untagged":{"Ref":[{"Body":15},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}}}]]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":30},"end":{"line":45,"col":31}}}},"id":20,"kind":{"StorageDead":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":30},"end":{"line":45,"col":31}}}},"id":21,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":46,"col":13},"end":{"line":46,"col":21}}}},"id":22,"kind":{"StorageLive":5},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":46,"col":13},"end":{"line":46,"col":21}}}},"id":23,"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Untagged":{"Ref":[{"Body":16},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},{"Untagged":{"Ref":[{"Body":10},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":11},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Ref":[{"Body":41},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":46,"col":23},"end":{"line":46,"col":32}}}},"id":24,"kind":{"StorageLive":6},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":46,"col":23},"end":{"line":46,"col":32}}}},"id":25,"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Untagged":{"Ref":[{"Body":17},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},{"Untagged":{"Ref":[{"Body":10},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":11},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,1]}]},"ty":{"Untagged":{"Ref":[{"Body":42},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":20},"end":{"line":47,"col":45}}}},"id":26,"kind":{"StorageLive":7},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":21},"end":{"line":47,"col":30}}}},"id":27,"kind":{"StorageLive":8},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":21},"end":{"line":47,"col":30}}}},"id":28,"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Untagged":{"Ref":[{"Body":16},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":34},"end":{"line":47,"col":44}}}},"id":29,"kind":{"StorageLive":9},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":34},"end":{"line":47,"col":44}}}},"id":30,"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Untagged":{"Ref":[{"Body":17},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":20},"end":{"line":47,"col":45}}}},"id":31,"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Untagged":{"Scalar":"Bool"}}},{"BinaryOp":["Eq",{"Move":{"kind":{"Local":8},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Move":{"kind":{"Local":9},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":null}},"id":54,"kind":{"Switch":{"data":{"scrutinee":{"Value":{"Move":{"kind":{"Local":7},"ty":{"Untagged":{"Scalar":"Bool"}}}}},"branches":[[{"Untagged":[{"Bool":false},{"Untagged":{"Scalar":"Bool"}}]},1]],"fallback":0},"branches":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":20},"end":{"line":47,"col":45}}}},"id":5,"statements":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":null}},"id":8,"statements":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":44},"end":{"line":47,"col":45}}}},"id":33,"kind":{"StorageDead":9},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":44},"end":{"line":47,"col":45}}}},"id":34,"kind":{"StorageDead":8},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":48,"col":24},"end":{"line":48,"col":28}}}},"id":35,"kind":{"StorageLive":10},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":48,"col":31},"end":{"line":48,"col":64}}}},"id":36,"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Untagged":{"Adt":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Aggregate":[{"Adt":[{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},0,null]},[]]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":48,"col":24},"end":{"line":48,"col":28}}}},"id":37,"kind":{"Borrowck":{"FakeRead":{"kind":{"Local":10},"ty":{"Untagged":{"Adt":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":20},"end":{"line":52,"col":113}}}},"id":38,"kind":{"StorageLive":11},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":53},"end":{"line":52,"col":57}}}},"id":39,"kind":{"StorageLive":12},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":53},"end":{"line":52,"col":57}}}},"id":40,"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Untagged":{"Adt":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Use":[{"Move":{"kind":{"Local":10},"ty":{"Untagged":{"Adt":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":59},"end":{"line":52,"col":69}}}},"id":41,"kind":{"StorageLive":13},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":59},"end":{"line":52,"col":69}}}},"id":42,"kind":{"StorageLive":14},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":59},"end":{"line":52,"col":69}}}},"id":43,"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Untagged":{"Ref":[{"Body":19},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Untagged":{"Ref":[{"Body":16},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":59},"end":{"line":52,"col":69}}}},"id":44,"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Untagged":{"Ref":[{"Body":18},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":14},"ty":{"Untagged":{"Ref":[{"Body":19},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":71},"end":{"line":52,"col":82}}}},"id":45,"kind":{"StorageLive":15},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":71},"end":{"line":52,"col":82}}}},"id":46,"kind":{"StorageLive":16},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":71},"end":{"line":52,"col":82}}}},"id":47,"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Untagged":{"Ref":[{"Body":21},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Untagged":{"Ref":[{"Body":17},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":71},"end":{"line":52,"col":82}}}},"id":48,"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Untagged":{"Ref":[{"Body":20},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Untagged":{"Ref":[{"Body":21},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":84},"end":{"line":52,"col":112}}}},"id":49,"kind":{"StorageLive":17},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":84},"end":{"line":52,"col":112}}}},"id":50,"kind":{"Assign":[{"kind":{"Local":17},"ty":{"Untagged":{"Adt":{"id":5,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":31}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null}}}},{"Aggregate":[{"Adt":[{"id":5,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":43}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":49}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":47}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":45}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null},0,null]},[]]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":52,"col":20},"end":{"line":52,"col":113}}}},"id":52,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":6},"generics":{"regions":[{"Body":53},{"Body":54},{"Body":55}],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"TraitImpl":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"TraitImpl":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]}}},"args":[{"Move":{"kind":{"Local":12},"ty":{"Untagged":{"Adt":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}}},{"Move":{"kind":{"Local":13},"ty":{"Untagged":{"Ref":[{"Body":18},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}}},{"Move":{"kind":{"Local":15},"ty":{"Untagged":{"Ref":[{"Body":20},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}}},{"Move":{"kind":{"Local":17},"ty":{"Untagged":{"Adt":{"id":5,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":31}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null}}}}}],"dest":{"kind":{"Local":11},"ty":{"Untagged":"Never"}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"id":6,"statements":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"id":51,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]}]}]}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":44},"end":{"line":47,"col":45}}}},"id":55,"kind":{"StorageDead":9},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":47,"col":44},"end":{"line":47,"col":45}}}},"id":56,"kind":{"StorageDead":8},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":53,"col":16},"end":{"line":53,"col":17}}}},"id":58,"kind":{"StorageDead":7},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":54,"col":12},"end":{"line":54,"col":13}}}},"id":59,"kind":{"StorageDead":6},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":54,"col":12},"end":{"line":54,"col":13}}}},"id":60,"kind":{"StorageDead":5},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":55,"col":8},"end":{"line":55,"col":9}}}},"id":61,"kind":{"StorageDead":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":55,"col":8},"end":{"line":55,"col":9}}}},"id":62,"kind":{"StorageDead":1},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":5,"col":4},"end":{"line":5,"col":5}},"generated_from_span":null}},"id":64,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":6,"col":1},"end":{"line":6,"col":1}},"generated_from_span":null}},"id":65,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":2,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["double",0]}],"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":3,"col":0},"end":{"line":5,"col":1}},"generated_from_span":null}},"source_text":"pub fn double(x: u32) -> u32 {\n x * 2\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":3,"col":0},"end":{"line":5,"col":1}},"generated_from_span":null}},"bound_body_regions":0,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":3,"col":25},"end":{"line":3,"col":28}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":1,"name":"x","span":{"Untagged":{"data":{"file_id":3,"beg":{"line":3,"col":14},"end":{"line":3,"col":15}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":2,"name":null,"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":5}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":3,"name":null,"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":9}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":5,"col":1}},"generated_from_span":null}},"id":18,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":5}},"generated_from_span":null}},"id":66,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":5}},"generated_from_span":null}},"id":67,"kind":{"StorageLive":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":5}},"generated_from_span":null}},"id":68,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":5}},"generated_from_span":null}},"id":69,"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Local":1},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":9}},"generated_from_span":null}},"id":70,"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"BinaryOp":["MulChecked",{"Copy":{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","2"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":9}},"generated_from_span":null}},"id":75,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,1]}]},"ty":{"Untagged":{"Scalar":"Bool"}}}},"expected":false,"check_kind":{"Overflow":[{"Mul":"Wrap"},{"Move":{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","2"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]}},"on_failure":{"Panic":null},"on_unwind":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":3,"col":0},"end":{"line":5,"col":1}},"generated_from_span":null}},"id":14,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":3,"col":0},"end":{"line":5,"col":1}},"generated_from_span":null}},"id":71,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":9}},"generated_from_span":null}},"id":72,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":8},"end":{"line":4,"col":9}},"generated_from_span":null}},"id":73,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":5,"col":1},"end":{"line":5,"col":1}},"generated_from_span":null}},"id":74,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":3,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["twice",0]}],"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"source_text":"pub fn twice(x: u32) -> u32 {\n double(x)\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"bound_body_regions":0,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":7,"col":24},"end":{"line":7,"col":27}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":1,"name":"x","span":{"Untagged":{"data":{"file_id":3,"beg":{"line":7,"col":13},"end":{"line":7,"col":14}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":2,"name":null,"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":11},"end":{"line":8,"col":12}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":11},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":22,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":11},"end":{"line":8,"col":12}},"generated_from_span":null}},"id":76,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":11},"end":{"line":8,"col":12}},"generated_from_span":null}},"id":77,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":11},"end":{"line":8,"col":12}},"generated_from_span":null}},"id":78,"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Local":1},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":4},"end":{"line":8,"col":13}},"generated_from_span":null}},"id":80,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}],"dest":{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":19,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":79,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":12},"end":{"line":8,"col":13}},"generated_from_span":null}},"id":81,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":9,"col":1},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":82,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":4,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["unit",0]}],"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":11,"col":0},"end":{"line":13,"col":1}},"generated_from_span":null}},"source_text":"pub fn unit() -> Square {\n Square(1)\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[],"output":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":11,"col":0},"end":{"line":13,"col":1}},"generated_from_span":null}},"bound_body_regions":0,"locals":{"arg_count":0,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":11,"col":17},"end":{"line":11,"col":23}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":12,"col":4},"end":{"line":13,"col":1}},"generated_from_span":null}},"id":24,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":12,"col":4},"end":{"line":12,"col":13}},"generated_from_span":null}},"id":83,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":12,"col":4},"end":{"line":12,"col":13}},"generated_from_span":null}},"id":84,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Aggregate":[{"Adt":[{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,null]},[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","1"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":13,"col":1},"end":{"line":13,"col":1}},"generated_from_span":null}},"id":85,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":5,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["private_unused",0]}],"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":15,"col":0},"end":{"line":17,"col":1}},"generated_from_span":null}},"source_text":"fn private_unused() -> u32 {\n 0\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":15,"col":0},"end":{"line":17,"col":1}},"generated_from_span":null}},"bound_body_regions":0,"locals":{"arg_count":0,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":15,"col":23},"end":{"line":15,"col":26}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":16,"col":4},"end":{"line":17,"col":1}},"generated_from_span":null}},"id":26,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":16,"col":4},"end":{"line":16,"col":5}},"generated_from_span":null}},"id":86,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":16,"col":4},"end":{"line":16,"col":5}},"generated_from_span":null}},"id":87,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","0"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":17,"col":1},"end":{"line":17,"col":1}},"generated_from_span":null}},"id":88,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":6,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["panicking",0]},{"Ident":["assert_failed",0]}],"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":397,"col":0},"end":{"line":405,"col":27}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Internal function for `assert_eq!` and `assert_ne!` macros"},{"Builtin":{"TrackCaller":{"Untagged":{"data":{"file_id":7,"beg":{"line":395,"col":0},"end":{"line":395,"col":15}},"generated_from_span":null}}}}],"inline":"Never","rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true},{"index":1,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true},{"index":2,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[{"index":0,"name":"T","variance":"Contravariant"},{"index":1,"name":"U","variance":"Contravariant"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":404,"col":20},"end":{"line":404,"col":26}},"generated_from_span":null}},"origin":"WhereClauseOnFn","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":405,"col":20},"end":{"line":405,"col":26}},"generated_from_span":null}},"origin":"WhereClauseOnFn","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,1]}}}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":404,"col":7},"end":{"line":404,"col":17}},"generated_from_span":null}},"origin":"WhereClauseOnFn","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"Untagged":{"data":{"file_id":7,"beg":{"line":405,"col":7},"end":{"line":405,"col":17}},"generated_from_span":null}},"origin":"WhereClauseOnFn","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,1]}}}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}},{"Var":{"Bound":[1,0]}}]},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":[{"Untagged":{"TypeVar":{"Bound":[1,1]}}},{"Var":{"Bound":[1,1]}}]}],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Adt":{"id":4,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"Shared"]}},{"Untagged":{"Ref":[{"Var":{"Bound":[0,1]}},{"Untagged":{"TypeVar":{"Bound":[0,1]}}},"Shared"]}},{"Untagged":{"Adt":{"id":5,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Var":{"Bound":[0,2]}}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":["Erased"],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":["Erased"],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":6,"generics":{"regions":[{"Var":{"Bound":[1,2]}}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null}}}],"output":{"Untagged":"Never"}},"src":"Normal","body":"Opaque"},{"def_id":7,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":4},"end":{"line":14,"col":5}},"generated_from_span":null}},"source_text":"fn area(&self) -> u32 {\n double(self.0) / 2 * self.0\n }","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":false,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":{"TraitImpl":{"impl_ref":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}},"item_id":0,"reuses_default":true}},"body":{"Structured":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":4},"end":{"line":14,"col":5}},"generated_from_span":null}},"bound_body_regions":2,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":22},"end":{"line":12,"col":25}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":1,"name":"self","span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":12},"end":{"line":12,"col":17}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":2,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":3,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":22}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":4,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":15},"end":{"line":13,"col":21}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":5,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":"Bool"}},"drop_flag_for":null},{"index":6,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":29},"end":{"line":13,"col":35}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":7,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":35}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":14,"col":5}},"generated_from_span":null}},"id":36,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"id":89,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"id":90,"kind":{"StorageLive":5},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"id":91,"kind":{"StorageLive":7},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"id":92,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":22}},"generated_from_span":null}},"id":93,"kind":{"StorageLive":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":15},"end":{"line":13,"col":21}},"generated_from_span":null}},"id":94,"kind":{"StorageLive":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":15},"end":{"line":13,"col":21}},"generated_from_span":null}},"id":95,"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":22}},"generated_from_span":null}},"id":97,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}],"dest":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":4},"end":{"line":14,"col":5}},"generated_from_span":null}},"id":27,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":4},"end":{"line":14,"col":5}},"generated_from_span":null}},"id":96,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":21},"end":{"line":13,"col":22}},"generated_from_span":null}},"id":98,"kind":{"StorageDead":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"id":99,"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Untagged":{"Scalar":"Bool"}}},{"BinaryOp":["Eq",{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","2"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}},{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","0"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"id":112,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Local":5},"ty":{"Untagged":{"Scalar":"Bool"}}}},"expected":false,"check_kind":{"DivisionByZero":{"Copy":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}}},"on_failure":{"Panic":null},"on_unwind":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":4},"end":{"line":14,"col":5}},"generated_from_span":null}},"id":28,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":4},"end":{"line":14,"col":5}},"generated_from_span":null}},"id":100,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":26}},"generated_from_span":null}},"id":101,"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"BinaryOp":[{"Div":"UB"},{"Move":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","2"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":25},"end":{"line":13,"col":26}},"generated_from_span":null}},"id":102,"kind":{"StorageDead":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":29},"end":{"line":13,"col":35}},"generated_from_span":null}},"id":103,"kind":{"StorageLive":6},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":29},"end":{"line":13,"col":35}},"generated_from_span":null}},"id":104,"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":35}},"generated_from_span":null}},"id":105,"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"BinaryOp":["MulChecked",{"Copy":{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Copy":{"kind":{"Local":6},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":35}},"generated_from_span":null}},"id":111,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,1]}]},"ty":{"Untagged":{"Scalar":"Bool"}}}},"expected":false,"check_kind":{"Overflow":[{"Mul":"Wrap"},{"Move":{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Move":{"kind":{"Local":6},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}},"on_failure":{"Panic":null},"on_unwind":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":4},"end":{"line":14,"col":5}},"generated_from_span":null}},"id":29,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":12,"col":4},"end":{"line":14,"col":5}},"generated_from_span":null}},"id":106,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":8},"end":{"line":13,"col":35}},"generated_from_span":null}},"id":107,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":34},"end":{"line":13,"col":35}},"generated_from_span":null}},"id":108,"kind":{"StorageDead":6},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":34},"end":{"line":13,"col":35}},"generated_from_span":null}},"id":109,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":5},"end":{"line":14,"col":5}},"generated_from_span":null}},"id":110,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":8,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null}},"source_text":"fn area(&self) -> u32 {\n self.0 * self.1\n }","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":false,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":{"TraitImpl":{"impl_ref":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}},"item_id":0,"reuses_default":true}},"body":{"Structured":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null}},"bound_body_regions":2,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":18,"col":22},"end":{"line":18,"col":25}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":1,"name":"self","span":{"Untagged":{"data":{"file_id":2,"beg":{"line":18,"col":12},"end":{"line":18,"col":17}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":2,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":14}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":3,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":17},"end":{"line":19,"col":23}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":4,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":23}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":20,"col":5}},"generated_from_span":null}},"id":41,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":14}},"generated_from_span":null}},"id":113,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":14}},"generated_from_span":null}},"id":114,"kind":{"StorageLive":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":14}},"generated_from_span":null}},"id":115,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":14}},"generated_from_span":null}},"id":116,"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":17},"end":{"line":19,"col":23}},"generated_from_span":null}},"id":117,"kind":{"StorageLive":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":17},"end":{"line":19,"col":23}},"generated_from_span":null}},"id":118,"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Field":[null,1]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":23}},"generated_from_span":null}},"id":119,"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"BinaryOp":["MulChecked",{"Copy":{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Copy":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":23}},"generated_from_span":null}},"id":125,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,1]}]},"ty":{"Untagged":{"Scalar":"Bool"}}}},"expected":false,"check_kind":{"Overflow":[{"Mul":"Wrap"},{"Move":{"kind":{"Local":2},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Move":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}},"on_failure":{"Panic":null},"on_unwind":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null}},"id":37,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null}},"id":120,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":8},"end":{"line":19,"col":23}},"generated_from_span":null}},"id":121,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},{"Untagged":{"Scalar":"Bool"}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":"Tuple"}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":22},"end":{"line":19,"col":23}},"generated_from_span":null}},"id":122,"kind":{"StorageDead":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":22},"end":{"line":19,"col":23}},"generated_from_span":null}},"id":123,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":20,"col":5},"end":{"line":20,"col":5}},"generated_from_span":null}},"id":124,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":9,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"kind":"InherentImplBlock"}}},{"Ident":["side",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":24,"col":4},"end":{"line":26,"col":5}},"generated_from_span":null}},"source_text":"pub fn side(&self) -> u32 {\n self.0\n }","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":24,"col":4},"end":{"line":26,"col":5}},"generated_from_span":null}},"bound_body_regions":2,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":24,"col":26},"end":{"line":24,"col":29}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":1,"name":"self","span":{"Untagged":{"data":{"file_id":2,"beg":{"line":24,"col":16},"end":{"line":24,"col":21}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":25,"col":8},"end":{"line":26,"col":5}},"generated_from_span":null}},"id":43,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":25,"col":8},"end":{"line":25,"col":14}},"generated_from_span":null}},"id":126,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":25,"col":8},"end":{"line":25,"col":14}},"generated_from_span":null}},"id":127,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Ref":[{"Body":1},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Field":[null,0]}]},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":26,"col":5},"end":{"line":26,"col":5}},"generated_from_span":null}},"id":128,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":10,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["macro_use",0]},{"Ident":["checked",0]},{"Builtin":["PromotedConst",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"started_from":false,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[],"output":{"Untagged":{"Ref":["Erased",{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},"src":{"GlobalInitializer":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"body":{"Structured":{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"bound_body_regions":1,"locals":{"arg_count":0,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"ty":{"Untagged":{"Ref":[{"Body":0},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"drop_flag_for":null},{"index":1,"name":null,"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":22},"end":{"line":4,"col":23}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":null}},"id":45,"statements":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":22},"end":{"line":4,"col":23}},"generated_from_span":null}},"id":129,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":22},"end":{"line":4,"col":23}},"generated_from_span":null}},"id":130,"kind":{"StorageLive":1},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":22},"end":{"line":4,"col":23}},"generated_from_span":null}},"id":131,"kind":{"Assign":[{"kind":{"Local":1},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","2"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}},"Yes"]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"id":132,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Ref":[{"Body":0},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Local":1},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"kind":"Shared","ptr_metadata":{"Const":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"id":133,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":11,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["num",0]},{"Impl":{"Trait":2}},{"Ident":["fmt",0]}],"span":{"Untagged":{"data":{"file_id":10,"beg":{"line":595,"col":0},"end":{"line":598,"col":1}},"generated_from_span":{"file_id":10,"beg":{"line":85,"col":16},"end":{"line":85,"col":72}}}},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true},{"index":1,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true},{"index":2,"name":null,"variance":"Invariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":[{"Var":{"Bound":[1,2]}},{"Var":{"Bound":[1,1]}}]}],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},{"Untagged":{"Ref":[{"Var":{"Bound":[0,1]}},{"Untagged":{"Adt":{"id":10,"generics":{"regions":[{"Var":{"Bound":[0,2]}}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Mut"]}}],"output":{"Untagged":{"Adt":{"id":11,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}},{"Untagged":{"Adt":{"id":12,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":12,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":12,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":12,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null}}}},"src":{"TraitImpl":{"impl_ref":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}},"item_id":0,"reuses_default":true}},"body":"Opaque"}],"global_decls":[null,{"def_id":1,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["macro_use",0]},{"Ident":["checked",0]},{"Builtin":["PromotedConst",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":{"file_id":6,"beg":{"line":45,"col":23},"end":{"line":45,"col":30}}}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"started_from":false,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Untagged":{"Ref":["Erased",{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}},"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Ref":["Erased",{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":null},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Ref":["Erased",{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":null},"ptr_metadata":{"Untagged":[{"Adt":[null,[]]},{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}]},"src":"Normal","global_kind":"AnonConst","value":{"Untagged":[{"Call":[{"kind":{"Fun":10},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},[]]},{"Untagged":{"Ref":["Erased",{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"Shared"]}}]}},null,null,null],"trait_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":3,"col":0},"end":{"line":5,"col":1}},"generated_from_span":null}},"source_text":"pub trait Shape {\n fn area(&self) -> u32;\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"src":"Normal","is_unsafe":false,"generics":{"regions":[],"types":[{"index":0,"name":"Self","variance":"Unknown"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":3,"col":0},"end":{"line":5,"col":1}},"generated_from_span":null}},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"area","item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":4,"col":4},"end":{"line":4,"col":26}},"generated_from_span":null}},"source_text":"fn area(&self) -> u32;","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"started_from":false,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"TypeVar":{"Bound":[1,0]}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"default":null},"kind":{"TraitMethod":[0,0]}}],"vtable":{"id":7,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}},{"def_id":1,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",0]}],"span":{"Untagged":{"data":{"file_id":5,"beg":{"line":158,"col":0},"end":{"line":158,"col":26}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types with a constant size known at compile time."},{"DocComment":""},{"DocComment":" All type parameters have an implicit bound of `Sized`. The special syntax"},{"DocComment":" `?Sized` can be used to remove this bound if it's not appropriate."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" struct Foo(T);"},{"DocComment":" struct Bar(T);"},{"DocComment":""},{"DocComment":" // struct FooUse(Foo<[i32]>); // error: Sized is not implemented for [i32]"},{"DocComment":" struct BarUse(Bar<[i32]>); // OK"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The one exception is the implicit `Self` type of a trait. A trait does not"},{"DocComment":" have an implicit `Sized` bound as this is incompatible with [trait object]s"},{"DocComment":" where, by definition, the trait needs to work with all possible implementors,"},{"DocComment":" and thus could be any size."},{"DocComment":""},{"DocComment":" Although Rust will let you bind `Sized` to a trait, you won't"},{"DocComment":" be able to use it to form a trait object later:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(unused_variables)]"},{"DocComment":" trait Foo { }"},{"DocComment":" trait Bar: Sized { }"},{"DocComment":""},{"DocComment":" struct Impl;"},{"DocComment":" impl Foo for Impl { }"},{"DocComment":" impl Bar for Impl { }"},{"DocComment":""},{"DocComment":" let x: &dyn Foo = &Impl; // OK"},{"DocComment":" // let y: &dyn Bar = &Impl; // error: the trait `Bar` cannot be made into an object"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [trait object]: ../../book/ch17-02-trait-objects.html"},{"Builtin":"Fundamental"}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":"Sized","diagnostic_item":null,"has_errors":false},"src":"Normal","is_unsafe":false,"generics":{"regions":[],"types":[{"index":0,"name":"Self","variance":"Unknown"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"Untagged":{"data":{"file_id":5,"beg":{"line":158,"col":17},"end":{"line":158,"col":26}},"generated_from_span":null}},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"TypeVar":{"Bound":[1,0]}}}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":2,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]}],"span":{"Untagged":{"data":{"file_id":5,"beg":{"line":175,"col":0},"end":{"line":175,"col":33}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types with a size that can be determined from pointer metadata."},{"Builtin":"Fundamental"}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":"MetaSized","diagnostic_item":null,"has_errors":false},"src":"Normal","is_unsafe":false,"generics":{"regions":[],"types":[{"index":0,"name":"Self","variance":"Unknown"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[],"vtable":{"id":8,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}},{"def_id":3,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Debug",0]}],"span":{"Untagged":{"data":{"file_id":9,"beg":{"line":1053,"col":0},"end":{"line":1053,"col":29}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":" `?` formatting."},{"DocComment":""},{"DocComment":" `Debug` should format the output in a programmer-facing, debugging context."},{"DocComment":""},{"DocComment":" Generally speaking, you should just `derive` a `Debug` implementation."},{"DocComment":""},{"DocComment":" When used with the alternate format specifier `#?`, the output is pretty-printed."},{"DocComment":""},{"DocComment":" For more information on formatters, see [the module-level documentation][module]."},{"DocComment":""},{"DocComment":" [module]: ../../std/fmt/index.html"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]` if all fields implement `Debug`. When"},{"DocComment":" `derive`d for structs, it will use the name of the `struct`, then `{`, then a"},{"DocComment":" comma-separated list of each field's name and `Debug` value, then `}`. For"},{"DocComment":" `enum`s, it will use the name of the variant and, if applicable, `(`, then the"},{"DocComment":" `Debug` values of the fields, then `)`."},{"DocComment":""},{"DocComment":" # Stability"},{"DocComment":""},{"DocComment":" Derived `Debug` formats are not stable, and so may change with future Rust"},{"DocComment":" versions. Additionally, `Debug` implementations of types provided by the"},{"DocComment":" standard library (`std`, `core`, `alloc`, etc.) are not stable, and"},{"DocComment":" may also change with future Rust versions."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Deriving an implementation:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct Point {"},{"DocComment":" x: i32,"},{"DocComment":" y: i32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let origin = Point { x: 0, y: 0 };"},{"DocComment":""},{"DocComment":" assert_eq!("},{"DocComment":" format!(\"The origin is: {origin:?}\"),"},{"DocComment":" \"The origin is: Point { x: 0, y: 0 }\","},{"DocComment":" );"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Manually implementing:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::fmt;"},{"DocComment":""},{"DocComment":" struct Point {"},{"DocComment":" x: i32,"},{"DocComment":" y: i32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl fmt::Debug for Point {"},{"DocComment":" fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {"},{"DocComment":" f.debug_struct(\"Point\")"},{"DocComment":" .field(\"x\", &self.x)"},{"DocComment":" .field(\"y\", &self.y)"},{"DocComment":" .finish()"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let origin = Point { x: 0, y: 0 };"},{"DocComment":""},{"DocComment":" assert_eq!("},{"DocComment":" format!(\"The origin is: {origin:?}\"),"},{"DocComment":" \"The origin is: Point { x: 0, y: 0 }\","},{"DocComment":" );"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" There are a number of helper methods on the [`Formatter`] struct to help you with manual"},{"DocComment":" implementations, such as [`debug_struct`]."},{"DocComment":""},{"DocComment":" [`debug_struct`]: Formatter::debug_struct"},{"DocComment":""},{"DocComment":" Types that do not wish to use the standard suite of debug representations"},{"DocComment":" provided by the `Formatter` trait (`debug_struct`, `debug_tuple`,"},{"DocComment":" `debug_list`, `debug_set`, `debug_map`) can do something totally custom by"},{"DocComment":" manually writing an arbitrary representation to the `Formatter`."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # use std::fmt;"},{"DocComment":" # struct Point {"},{"DocComment":" # x: i32,"},{"DocComment":" # y: i32,"},{"DocComment":" # }"},{"DocComment":" #"},{"DocComment":" impl fmt::Debug for Point {"},{"DocComment":" fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {"},{"DocComment":" write!(f, \"Point [{} {}]\", self.x, self.y)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" `Debug` implementations using either `derive` or the debug builder API"},{"DocComment":" on [`Formatter`] support pretty-printing using the alternate flag: `{:#?}`."},{"DocComment":""},{"DocComment":" Pretty-printing with `#?`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct Point {"},{"DocComment":" x: i32,"},{"DocComment":" y: i32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let origin = Point { x: 0, y: 0 };"},{"DocComment":""},{"DocComment":" let expected = \"The origin is: Point {"},{"DocComment":" x: 0,"},{"DocComment":" y: 0,"},{"DocComment":" }\";"},{"DocComment":" assert_eq!(format!(\"The origin is: {origin:#?}\"), expected);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":"Debug","has_errors":false},"src":"Normal","is_unsafe":false,"generics":{"regions":[],"types":[{"index":0,"name":"Self","variance":"Unknown"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true},{"index":1,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true},{"index":2,"name":null,"variance":"Invariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"fmt","item_meta":{"name":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["Debug",0]},{"Ident":["fmt",0]}],"span":{"Untagged":{"data":{"file_id":9,"beg":{"line":1084,"col":4},"end":{"line":1084,"col":51}},"generated_from_span":null}},"source_text":null,"attr_info":{"attributes":[{"DocComment":"Formats the value using the given formatter.\n\n# Errors\n\nThis function should return [`Err`] if, and only if, the provided [`Formatter`] returns [`Err`].\nString formatting is considered an infallible operation; this function only\nreturns a [`Result`] because writing to the underlying stream might fail and it must\nprovide a way to propagate the fact that an error has occurred back up the stack.\n"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::fmt;"},{"DocComment":""},{"DocComment":" struct Position {"},{"DocComment":" longitude: f32,"},{"DocComment":" latitude: f32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl fmt::Debug for Position {"},{"DocComment":" fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {"},{"DocComment":" f.debug_tuple(\"\")"},{"DocComment":" .field(&self.longitude)"},{"DocComment":" .field(&self.latitude)"},{"DocComment":" .finish()"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let position = Position { longitude: 1.987, latitude: 2.983 };"},{"DocComment":" assert_eq!(format!(\"{position:?}\"), \"(1.987, 2.983)\");"},{"DocComment":""},{"DocComment":" assert_eq!(format!(\"{position:#?}\"), \"("},{"DocComment":" 1.987,"},{"DocComment":" 2.983,"},{"DocComment":" )\");"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"signature":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"TypeVar":{"Bound":[1,0]}}},"Shared"]}},{"Untagged":{"Ref":[{"Var":{"Bound":[0,1]}},{"Untagged":{"Adt":{"id":10,"generics":{"regions":[{"Var":{"Bound":[0,2]}}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Mut"]}}],"output":{"Untagged":{"Adt":{"id":11,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}},{"Untagged":{"Adt":{"id":12,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}],"const_generics":[],"trait_refs":[]}}}}},{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":12,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":12,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"types":[],"vtable":null}},"trait_decl_ref":{"id":1,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":12,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null}}}},"default":null},"kind":{"TraitMethod":[3,0]}}],"vtable":{"id":9,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}],"trait_impls":[{"def_id":0,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":11,"col":0},"end":{"line":15,"col":1}},"generated_from_span":null}},"source_text":"impl Shape for Square {\n fn area(&self) -> u32 {\n double(self.0) / 2 * self.0\n }\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"src":"Normal","impl_trait":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}},"is_negative":false,"is_unsafe":false,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":7,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[0,0]}}],"vtable":"Lazy"},{"def_id":1,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":17,"col":0},"end":{"line":21,"col":1}},"generated_from_span":null}},"source_text":"impl Shape for Rect {\n fn area(&self) -> u32 {\n self.0 * self.1\n }\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"started_from":true,"is_extern":false,"opacity":"Transparent","lang_item":null,"diagnostic_item":null,"has_errors":false},"src":"Normal","impl_trait":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}},"is_negative":false,"is_unsafe":false,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[],"vtable":{"id":0,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}},"trait_decl_ref":{"id":2,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":8,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[0,0]}}],"vtable":"Lazy"},{"def_id":2,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["fmt",0]},{"Ident":["num",0]},{"Impl":{"Trait":2}}],"span":{"Untagged":{"data":{"file_id":10,"beg":{"line":595,"col":0},"end":{"line":598,"col":1}},"generated_from_span":{"file_id":10,"beg":{"line":83,"col":12},"end":{"line":83,"col":34}}}},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"started_from":false,"is_extern":false,"opacity":"Foreign","lang_item":null,"diagnostic_item":null,"has_errors":false},"src":"Normal","impl_trait":{"id":3,"generics":{"regions":[],"types":[{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}],"const_generics":[],"trait_refs":[]}},"is_negative":false,"is_unsafe":false,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true},{"index":1,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true},{"index":2,"name":null,"variance":"Invariant","mutability":"Unknown","late_bound":true}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":11,"generics":{"regions":[{"Var":{"Bound":[0,0]}},{"Var":{"Bound":[0,1]}},{"Var":{"Bound":[0,2]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[3,0]}}],"vtable":"Lazy"}],"ordered_decls":[{"Type":{"NonRec":12}},{"Type":{"NonRec":10}},{"Type":{"NonRec":6}},{"Type":{"NonRec":0}},{"TraitDecl":{"NonRec":2}},{"TraitDecl":{"NonRec":1}},{"Type":{"NonRec":11}},{"TraitDecl":{"NonRec":3}},{"Fun":{"NonRec":11}},{"TraitImpl":{"NonRec":2}},{"Type":{"NonRec":5}},{"Type":{"NonRec":4}},{"Fun":{"NonRec":6}},{"Type":{"NonRec":3}},{"TraitDecl":{"NonRec":0}},{"Fun":{"NonRec":0}},{"Fun":{"NonRec":2}},{"Fun":{"NonRec":3}},{"Fun":{"NonRec":10}},{"Global":{"NonRec":1}},{"Fun":{"NonRec":1}},{"Type":{"NonRec":1}},{"Type":{"NonRec":2}},{"Fun":{"NonRec":7}},{"TraitImpl":{"NonRec":0}},{"Fun":{"NonRec":8}},{"TraitImpl":{"NonRec":1}},{"Fun":{"NonRec":9}},{"Fun":{"NonRec":4}},{"Fun":{"NonRec":5}}]},"has_errors":false} \ No newline at end of file diff --git a/crates/ruff_charon/tests/store.rs b/crates/ruff_charon/tests/store.rs new file mode 100644 index 0000000000000..e4485e990ed23 --- /dev/null +++ b/crates/ruff_charon/tests/store.rs @@ -0,0 +1,212 @@ +//! The offline store on the codegraph fixture: rev1 → rev2 deletes `triple` +//! and `area_dyn` from `cg_lib` and drops the `area_dyn` call from `cg_app`. +#![expect( + clippy::disallowed_methods, + reason = "tests write and read their own temp files; there is no ty System here" +)] + +use std::collections::BTreeSet; +use std::path::{Path, PathBuf}; + +use ruff_charon::store::{Store, crate_files, with_dependents}; +use ruff_charon::{Llbc, load}; + +fn data(name: &str) -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")) + .join("tests/data") + .join(name) +} + +fn llbc(name: &str) -> Llbc { + load(&data(name)).expect("llbc") +} + +/// A fresh directory per test. +fn temp(name: &str) -> PathBuf { + let dir = std::env::temp_dir().join(format!("ruff_charon_{name}_{}", std::process::id())); + let _ = std::fs::remove_dir_all(&dir); + std::fs::create_dir_all(&dir).expect("temp dir"); + dir +} + +fn store_of(name: &str, llbcs: &[(&str, &str)]) -> Store { + let store = Store::new(temp(name)); + for (file, krate) in llbcs { + store.import(&llbc(file), krate).expect("import"); + } + store +} + +const REV1: &[(&str, &str)] = &[("cg_lib.llbc", "cg_lib"), ("cg_app.llbc", "cg_app")]; +const REV2: &[(&str, &str)] = &[ + ("cg_lib_rev2.llbc", "cg_lib"), + ("cg_app_rev2.llbc", "cg_app"), +]; + +/// Refreshing every changed crate gives exactly the rows of a clean import. +#[test] +fn incremental_refresh_equals_a_clean_import() { + let inc = store_of("inc", REV1); + let before = inc.all_rows().expect("rows"); + for (file, krate) in REV2 { + inc.import(&llbc(file), krate).expect("refresh"); + } + let clean = store_of("clean", REV2); + let after = inc.all_rows().expect("rows"); + assert_ne!( + before, after, + "rev1 and rev2 must differ, or this compares nothing" + ); + assert_eq!(after, clean.all_rows().expect("rows")); +} + +/// Deleted functions leave no definition and no call row behind. +#[test] +fn deleted_functions_leave_nothing() { + let inc = store_of("deleted", REV1); + let names = |s: &Store| -> BTreeSet { + s.all_rows() + .expect("rows") + .into_iter() + .flat_map(|r| [r.subject, r.object]) + .collect() + }; + for gone in ["cg_lib::util::triple", "cg_lib::area_dyn"] { + assert!(names(&inc).contains(gone), "{gone} must be in rev1"); + } + for (file, krate) in REV2 { + inc.import(&llbc(file), krate).expect("refresh"); + } + for gone in ["cg_lib::util::triple", "cg_lib::area_dyn"] { + assert!(!names(&inc).contains(gone), "{gone} survived the refresh"); + } + assert!(inc.dangling().expect("dangling").is_empty()); +} + +/// Skipping a dependent crate leaves exactly the edge to the deleted function; +/// the dependency rule names the dependent. +#[test] +fn skipping_a_dependent_leaves_a_dangling_edge() { + let inc = store_of("dangling", REV1); + assert!( + inc.dangling().expect("dangling").is_empty(), + "rev1 is consistent" + ); + inc.import(&llbc("cg_lib_rev2.llbc"), "cg_lib") + .expect("refresh"); + let edges: Vec<_> = inc + .dangling() + .expect("dangling") + .into_iter() + .map(|r| (r.subject, r.object)) + .collect(); + assert_eq!( + edges, + [("cg_app::run".to_owned(), "cg_lib::area_dyn".to_owned())] + ); + let deps = [("cg_app".to_owned(), "cg_lib".to_owned())]; + let todo = with_dependents(&BTreeSet::from(["cg_lib".to_owned()]), &deps); + assert_eq!( + todo, + BTreeSet::from(["cg_app".to_owned(), "cg_lib".to_owned()]) + ); + assert_eq!( + with_dependents(&BTreeSet::from(["cg_app".to_owned()]), &deps).len(), + 1 + ); +} + +/// Write the files Charon read (their contents ride in the LLBC) under `root`. +fn materialize(root: &Path, llbcs: &[(&str, &str)]) { + for (file, krate) in llbcs { + for f in llbc(file) + .krate + .files + .iter() + .filter(|f| f.crate_name == *krate) + { + if let (charon_lib::ast::FileName::Local(p), Some(text)) = (&f.name, &f.contents) { + let path = root.join(p); + std::fs::create_dir_all(path.parent().expect("parent")).expect("dir"); + std::fs::write(path, text).expect("write"); + } + } + } +} + +/// A crate is stale exactly when one of its recorded files changed or vanished. +#[test] +fn stale_names_the_crates_whose_files_changed() { + let store = store_of("stale", REV1); + let root = temp("stale_root"); + materialize(&root, REV1); + assert!(store.stale(&root).expect("stale").is_empty()); + // One cg_lib file edited by one byte. + let util = root.join("cg_lib/src/util.rs"); + let mut text = std::fs::read(&util).expect("util"); + text.push(b'\n'); + std::fs::write(&util, &text).expect("write"); + assert_eq!( + store.stale(&root).expect("stale"), + BTreeSet::from(["cg_lib".to_owned()]) + ); + // The whole rev2 tree: both crates' files changed. + materialize(&root, REV2); + assert_eq!( + store.stale(&root).expect("stale"), + BTreeSet::from(["cg_app".to_owned(), "cg_lib".to_owned()]) + ); + // A recorded file that vanished. + let fresh = temp("stale_root_missing"); + materialize(&fresh, REV1); + std::fs::remove_file(fresh.join("cg_app/src/lib.rs")).expect("rm"); + assert_eq!( + store.stale(&fresh).expect("stale"), + BTreeSet::from(["cg_app".to_owned()]) + ); +} + +/// The digests cover every source file of the crate and nothing of another crate. +#[test] +fn files_are_the_crates_own() { + let lib = crate_files(&llbc("cg_lib.llbc"), "cg_lib"); + let paths: Vec<_> = lib.iter().map(|(p, _)| p.as_str()).collect(); + assert_eq!( + paths, + [ + "cg_lib/src/lib.rs", + "cg_lib/src/macro_use.rs", + "cg_lib/src/shapes.rs", + "cg_lib/src/util.rs" + ] + ); + assert!( + crate_files(&llbc("cg_app.llbc"), "cg_app") + .iter() + .all(|(p, _)| p.starts_with("cg_app/")) + ); +} + +/// Readers refuse an artifact newer than they know, or one missing a column. +#[test] +fn readers_refuse_unknown_versions_and_missing_columns() { + let store = store_of("reader", &[("cg_lib.llbc", "cg_lib")]); + let rows = store.rows("cg_lib").expect("rows"); + assert!(!rows.is_empty()); + let path = std::env::temp_dir() + .join(format!("ruff_charon_reader_{}", std::process::id())) + .join("cg_lib.rows.tsv"); + let text = std::fs::read_to_string(&path).expect("rows file"); + std::fs::write(&path, text.replacen("#version 1", "#version 2", 1)).expect("write"); + assert!( + store.rows("cg_lib").is_err(), + "a newer version must be refused" + ); + std::fs::write(&path, text.replacen("\tgrade\t", "\tlevel\t", 1)).expect("write"); + assert!( + store.rows("cg_lib").is_err(), + "a renamed column must be refused" + ); + std::fs::write(&path, &text).expect("restore"); + assert_eq!(store.rows("cg_lib").expect("rows"), rows); +}