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);
+}