diff --git a/Cargo.toml b/Cargo.toml index 7d272e991b8e61..9503116fb66404 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,8 @@ members = ["crates/*"] # See .claude/plans/r2il-behavioral-ir-v1.md. # ruff_metta_spo is excluded for the same reason: it path-deps the # hyperon-experimental sibling checkout (the Hyperon MeTTa parser). -exclude = ["crates/ruff_r2il", "crates/ruff_metta_spo"] +# ruff_charon likewise: it path-deps the AdaWorldAPI charon checkout. +exclude = ["crates/ruff_r2il", "crates/ruff_metta_spo", "crates/ruff_charon"] resolver = "2" [workspace.package] diff --git a/crates/ruff_charon/Cargo.lock b/crates/ruff_charon/Cargo.lock new file mode 100644 index 00000000000000..013adae1a382e1 --- /dev/null +++ b/crates/ruff_charon/Cargo.lock @@ -0,0 +1,1559 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "annotate-snippets" +version = "0.12.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a5b0a5ab8561c603f16c3b78c24a386b1f70e7fc1b1b1e8c15738828e4a176" +dependencies = [ + "anstyle", + "memchr", + "unicode-width", +] + +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse 0.2.7", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse 1.0.0", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "ar_archive_writer" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cd58deff2140a0a8eae87e417bd01db68a33e148aa93d1e8cd837e55e312b6" +dependencies = [ + "object", +] + +[[package]] +name = "assert_cmd" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aa3a22042e45de04255c7bf3626e239f450200fd0493c1e382263544b20aea6" +dependencies = [ + "anstyle", + "bstr", + "libc", + "predicates", + "predicates-core", + "predicates-tree", + "wait-timeout", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "bstr" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb31b46c14244e20ee9984b11bf5c992b91fb6939fea616e3512c8baecdbe5f" +dependencies = [ + "memchr", + "regex-automata", + "serde_core", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cc" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86e055fa6e3e40ad6187ba25b6855eeb635d5271f8e0f0e1e9a5826b8d75bea0" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" + +[[package]] +name = "charon" +version = "0.1.297" +dependencies = [ + "annotate-snippets", + "anstream 0.6.21", + "anyhow", + "assert_cmd", + "bitflags 2.13.2", + "clap", + "convert_case", + "derive_generic_visitor", + "either", + "env_logger", + "extension-traits", + "hashbrown 0.15.5", + "hax-adt-into", + "index_vec", + "indexmap", + "indoc", + "itertools 0.13.0", + "lazy_static", + "log", + "macros", + "nom", + "petgraph", + "postcard", + "rustc-hash", + "rustc_apfloat", + "rustc_version", + "serde", + "serde_json", + "serde_stacker", + "serde_state_perfect_derive", + "smallvec", + "stacker", + "syn 1.0.109", + "take_mut", + "tempfile", + "toml", + "tracing", + "tracing-subscriber", + "tracing-tree", + "ustr", + "wait-timeout", + "which", +] + +[[package]] +name = "clap" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" +dependencies = [ + "anstream 1.0.0", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "clap_lex" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" + +[[package]] +name = "cobs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" +dependencies = [ + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "defmt" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a0795ac740cb54d7b3775c9c17345f6aaecf884c01733b39d6017738e0e3e1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "840bb056bd99c495c9188198a258ab787c79f306d864db3e6e8451442d6d8366" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "defmt-parser" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71958f69fb2de856c5dd51ac9377e986ca1aa5919f931bf5395a807277f889a0" +dependencies = [ + "thiserror", +] + +[[package]] +name = "deranged" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e9de72ce2ad1f90dc62fa25f0f430ef85eb4b0d8fa0be4f30373bc40a21d28e" + +[[package]] +name = "derive_generic_visitor" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "972dd93b5dba0d648ee42fabc3c9756b1e5732e0fe514193c0e3008013305b7e" +dependencies = [ + "derive_generic_visitor_macros", + "itertools 0.14.0", +] + +[[package]] +name = "derive_generic_visitor_macros" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "079c2738859003286c4940c2f7bd50f2f6f7f7688ad53cf8e6acda2dd0a918f2" +dependencies = [ + "convert_case", + "darling", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "either" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + +[[package]] +name = "env_filter" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_home" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" + +[[package]] +name = "env_logger" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" +dependencies = [ + "anstream 1.0.0", + "anstyle", + "env_filter", + "jiff", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00d174d5400e5e8fd687ad1049e2f578285fa914201b1af7e8b112a4546bd826" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "ext-trait" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d772df1c1a777963712fb68e014235e80863d6a91a85c4e06ba2d16243a310e5" +dependencies = [ + "ext-trait-proc_macros", +] + +[[package]] +name = "ext-trait-proc_macros" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ab7934152eaf26aa5aa9f7371408ad5af4c31357073c9e84c3b9d7f11ad639a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "extension-traits" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a296e5a895621edf9fa8329c83aa1cb69a964643e36cf54d8d7a69b789089537" +dependencies = [ + "ext-trait", +] + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "find-msvc-tools" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c66915cc5391097de7a2b0b972e8505aa33c0df401fd3a6811dbdb32881ba48" + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "hax-adt-into" +version = "0.3.5" +dependencies = [ + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 1.0.109", + "tracing", +] + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version", + "serde", + "spin", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "index_vec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44faf5bb8861a9c72e20d3fb0fdbd59233e43056e2b80475ab0aacdc2e781355" +dependencies = [ + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "indoc" +version = "2.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a37b2691796cffeb8a8cd305ac66e65841559f147f4e63231d0eafa4db5384d1" +dependencies = [ + "rustversion", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "jiff" +version = "0.2.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b005715dcbeb0089a3c0dab99f2ff1cc3b2525323552703d648585d342a383" +dependencies = [ + "defmt", + "jiff-core", + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e52fe76043ccecc9005d2305ebaadf7d7fc0cc89ca6baa10a94d6bc68c7128c" +dependencies = [ + "defmt", + "log", +] + +[[package]] +name = "jiff-static" +version = "0.2.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cc9817253cf7c7ee4684451bd327e88d6f3658014e54a29198625590650695c" +dependencies = [ + "jiff-core", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "lazy_static" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20870f649af7073d53e38067b2a84312175d56ea15217e1b15bc83506ec50afb" + +[[package]] +name = "libc" +version = "0.2.191" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d15f86d12da44cd8d4ec3c73984537eb7f4cadcb9776a575a0a8a05ca11005c" + +[[package]] +name = "macros" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[package]] +name = "num_threads" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cabcc654086861f9e1bc5115258de62ef92c79b20f4615a1b0cc57c4e82027d4" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e5a6c098c7a3b6547378093f5cc30bc54fd361ce711e05293a5cc589562739b" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", +] + +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap", + "serde", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "portable-atomic" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "portable-atomic-util" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "postcard" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6394b9e965e73d0a289ee54f589087e2c676aedf60885baf52c76b771e4958" + +[[package]] +name = "predicates" +version = "3.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada8f2932f28a27ee7b70dd6c1c39ea0675c55a36879ab92f3a715eaa1e63cfe" +dependencies = [ + "anstyle", + "difflib", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144" + +[[package]] +name = "predicates-tree" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "psm" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd034599e63b970727f70d79e02d62390a4a84f7c6b827c27c46d5ac3fa622" +dependencies = [ + "ar_archive_writer", + "cc", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.13.2", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "ruff_charon" +version = "0.1.0" +dependencies = [ + "anyhow", + "charon", + "serde_json", +] + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_apfloat" +version = "0.2.3+llvm-462a31f5a5ab" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "486c2179b4796f65bfe2ee33679acf0927ac83ecf583ad6c91c3b4570911b9ad" +dependencies = [ + "bitflags 2.13.2", + "smallvec", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5e76742e5294153d4dde1207dbec5bdd81eef6fabdc0d2118babadabfd858aa" +dependencies = [ + "bitflags 2.13.2", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "serde_json" +version = "1.0.154" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_stacker" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4936375d50c4be7eff22293a9344f8e46f323ed2b3c243e52f89138d9bb0f4a" +dependencies = [ + "serde", + "serde_core", + "stacker", +] + +[[package]] +name = "serde_state_perfect_derive" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee99988af71dac4de7dd0882da328b8089e1b0bf10c4bb68792ec7581fb0375" +dependencies = [ + "serde", + "serde_state_perfect_derive_derive", +] + +[[package]] +name = "serde_state_perfect_derive_derive" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d80d31bfa32e1e337cb392a33c11b6548c0cc888ab1054ce6661aa45f07d28fa" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "smallvec" +version = "1.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8" + +[[package]] +name = "spin" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" +dependencies = [ + "lock_api", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "stacker" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707f49d46706bacf8a2b00d51dace3f9de527c13eec3778f570c411f89e69967" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "windows-sys", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "take_mut" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom", + "once_cell", + "rustix", + "windows-sys", +] + +[[package]] +name = "termtree" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" + +[[package]] +name = "thiserror" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "thread_local" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "time" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" +dependencies = [ + "deranged", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + +[[package]] +name = "time-macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-tree" +version = "0.4.0" +source = "git+https://github.com/Nadrieril/tracing-tree#841286bfffd3c2200810244506cd127013dbeff9" +dependencies = [ + "nu-ansi-term", + "time", + "tracing-core", + "tracing-log", + "tracing-subscriber", +] + +[[package]] +name = "unicode-ident" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "unicode-width" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca718471876992059f251e33aafc334346ada08042b7661dd1fe313a9bced557" + +[[package]] +name = "ustr" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18b19e258aa08450f93369cf56dd78063586adf19e92a75b338a800f799a0208" +dependencies = [ + "ahash", + "byteorder", + "lazy_static", + "parking_lot", + "serde", +] + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + +[[package]] +name = "which" +version = "7.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" +dependencies = [ + "either", + "env_home", + "rustix", + "winsafe", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + +[[package]] +name = "winsafe" +version = "0.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" + +[[package]] +name = "zerocopy" +version = "0.8.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5fe1f8f1b06191a00962174c61aa5005e0bb391a6d80d07e24d115c01a92ed8" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863ad3ac83293fb4d740aedbfdc9240dd8d1a50c1099acd76ce80ce7c7230c7f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/crates/ruff_charon/Cargo.toml b/crates/ruff_charon/Cargo.toml new file mode 100644 index 00000000000000..561e0f333d40a0 --- /dev/null +++ b/crates/ruff_charon/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "ruff_charon" +version = "0.1.0" +publish = false +# Excluded from the ruff workspace (root `exclude`), like ruff_r2il: it depends on a sibling +# checkout and pins its own edition / rust-version. +edition = "2024" +rust-version = "1.99" +description = "Rust intake arm (D-CODEGRAPH-0): reads Charon's LLBC through charon-lib and emits the facts Charon witnessed, as calls, relation rows with a witness grade, and Kythe entries. Nothing is inferred; what cannot be represented is counted as residual." + +[lib] +name = "ruff_charon" + +[dependencies] +# The AdaWorldAPI fork checkout, consumed by path (P0 fork rule). The library only: +# `--no-default-features` drops the rustc driver and the minirust submodule, and builds on +# stable. Producing LLBC needs the fork's `charon` binary on its pinned nightly. +charon = { path = "../../../charon/charon", default-features = false } +serde_json = "1" +anyhow = "1" diff --git a/crates/ruff_charon/src/lib.rs b/crates/ruff_charon/src/lib.rs new file mode 100644 index 00000000000000..6d2e496f595014 --- /dev/null +++ b/crates/ruff_charon/src/lib.rs @@ -0,0 +1,512 @@ +//! `ruff_charon` โ€” the Rust intake arm of D-CODEGRAPH-0 (lance-graph +//! `.claude/plans/d-codegraph-0-resident-codegraph-v1.md`). +//! +//! Charon translates a crate to LLBC; this crate reads the LLBC through +//! `charon_lib` and reports what Charon witnessed, in three forms: +//! +//! - [`calls_text`]: one line per local function, byte-identical to +//! `lance-graph/crates/sag-ra-probe/tools/llbc_calls.py`. That script is the +//! reference this crate is checked against. +//! - [`relations`]: relation rows in the crai-rs vocabulary (`DEFINES`, +//! `CALLS_RESOLVED`, `MAY_DISPATCH`, `UNRESOLVED_CALL`), each with its grade +//! and source span, plus [`Residual`]s and a [`Receipt`] whose conservation +//! check is `harvested == represented + residual`. +//! - [`kythe_entries`]: Kythe entries (`defines`, `ref/call`, `childof`) in the +//! JSON shape `kythe_entries.py` writes and `entrystream` reads. +//! +//! # What a call is, here +//! +//! A call is a `Call` statement in a structured (LLBC) body. Its callee is +//! classified by how Charon resolved it: +//! +//! | Charon | Meaning | Relation | +//! |---|---|---| +//! | `FnPtrKind::Fun(id)` | a resolved function | `CALLS_RESOLVED` | +//! | `FnPtrKind::Trait` with `TraitRefKind::TraitImpl` | a known impl | `CALLS_RESOLVED` | +//! | `FnPtrKind::Trait`, any other trait-ref kind (`Clause`, `Dyn`, ...) | the impl is chosen later | `MAY_DISPATCH` | +//! | `FnOperand::Dynamic` | a function pointer or vtable slot | `UNRESOLVED_CALL` | +//! +//! A `MAY_DISPATCH` row is never a confirmed caller (crai-rs RS-F07). Nothing +//! is inferred from names. + +use std::fmt::Write as _; +use std::path::Path; + +use charon_lib::ast::llbc_ast::{Statement, StatementKind}; +use charon_lib::ast::visitor::AstVisitable; +use charon_lib::ast::*; +use charon_lib::export::CrateData; +use charon_lib::formatter::IntoFormatter; +use charon_lib::options::SerializationFormat; +use charon_lib::pretty::FmtWithCtx; + +/// A deserialized LLBC file. +pub struct Llbc { + /// Charon reported errors: the crate description is partial. + pub has_errors: bool, + pub krate: TranslatedCrate, +} + +/// Read an LLBC file written by `charon ... --dest-file`. +pub fn load(path: &Path) -> anyhow::Result { + let data = CrateData::deserialize_from_file(path, SerializationFormat::Json)?; + Ok(Llbc { + has_errors: data.has_errors, + krate: data.translated, + }) +} + +/// The name of a Rust enum variant, from its `Debug` form: `Clause(..)` โ†’ +/// `Clause`, `SelfId` โ†’ `SelfId`. Used where the reference script prints the +/// variant's serialized tag. +fn variant(debug: String) -> String { + debug + .split(|c: char| !(c.is_alphanumeric() || c == '_')) + .next() + .unwrap_or("") + .to_owned() +} + +/// A path the way the reference script prints it: identifiers as written, +/// every other path element as its variant tag (`Impl`, `Builtin`, ...). +/// Two impl methods can print the same; [`qualified_name`] tells them apart. +pub fn path_name(name: &Name) -> String { + name.name + .iter() + .map(|e| match e { + PathElem::Ident(s, _) => s.clone(), + other => variant(format!("{other:?}")), + }) + .collect::>() + .join("::") +} + +/// Charon's own rendering of a name, which spells impl blocks out +/// (`{impl Shape for Square}`), so distinct items print distinctly. +pub fn qualified_name(krate: &TranslatedCrate, name: &Name) -> String { + name.to_string_with_ctx(&krate.into_fmt()) +} + +/// Where a callee is, as Charon resolved it. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Callee { + /// `FnPtrKind::Fun`: the function's id. + Fun(FunDeclId), + /// `FnPtrKind::Trait`: the trait reference's kind and the method's trait. + Trait { + kind: String, + trait_id: Option, + }, + /// `FnOperand::Dynamic`. + Dynamic, +} + +/// A byte range in a source file, as Charon recorded it. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Site { + pub file: String, + pub start: usize, + pub end: usize, +} + +/// One call statement. +#[derive(Debug, Clone)] +pub struct CallSite { + pub callee: Callee, + pub site: Option, +} + +/// What one function's body witnesses. +#[derive(Debug, Clone)] +pub struct FunFacts { + pub id: FunDeclId, + pub name: String, + pub qualified: String, + pub site: Option, + /// `None`: the body is not structured LLBC (opaque, extern, unstructured). + pub calls: Option>, + /// Writes through a dereference rooted in an argument (caller memory; for + /// a closure, its captured state is argument 1). + pub deref_write_arg: usize, + /// Writes through a dereference rooted in a local (may still alias). + pub deref_write_local: usize, + /// `Assert` statements: overflow, division and bounds checks that can panic. + pub asserts: usize, +} + +fn file_name(krate: &TranslatedCrate, id: FileId) -> String { + match &krate.files[id].name { + FileName::Virtual(p) | FileName::Local(p) => p.display().to_string(), + FileName::NotReal(s) => s.clone(), + } +} + +/// The byte range of a span, when Charon kept the file's contents. +pub fn site(krate: &TranslatedCrate, span: Span) -> Option { + let data = span.data(); + let source = krate.files[data.file_id].contents.as_ref()?; + let range = data.to_byte_range(source); + Some(Site { + file: file_name(krate, data.file_id), + start: range.start, + end: range.end, + }) +} + +/// The local a place is rooted in, through every projection. +fn root_local(place: &Place) -> Option { + match &place.kind { + PlaceKind::Local(id) => Some(*id), + PlaceKind::Projection(inner, _) => root_local(inner), + _ => None, + } +} + +fn has_deref(place: &Place) -> bool { + match &place.kind { + PlaceKind::Projection(inner, elem) => { + matches!(elem, ProjectionElem::Deref) || has_deref(inner) + } + _ => false, + } +} + +fn callee(call: &Call) -> Callee { + match &call.func { + FnOperand::Regular(ptr) => match ptr.kind.as_ref() { + FnPtrKind::Fun(id) => Callee::Fun(*id), + FnPtrKind::Trait(tr, _) => Callee::Trait { + kind: variant(format!("{:?}", tr.kind)), + trait_id: Some(tr.trait_decl_ref.id), + }, + }, + FnOperand::Dynamic(..) => Callee::Dynamic, + } +} + +/// The facts of every function whose path starts with `crate_name::`, in +/// Charon's declaration order. +pub fn fun_facts(krate: &TranslatedCrate, crate_name: &str) -> Vec { + let prefix = format!("{crate_name}::"); + let mut out = Vec::new(); + for f in krate.fun_decls.iter() { + let name = path_name(&f.item_meta.name); + if !name.starts_with(&prefix) { + continue; + } + let mut facts = FunFacts { + id: f.def_id, + qualified: qualified_name(krate, &f.item_meta.name), + name, + site: site(krate, f.item_meta.span), + calls: None, + deref_write_arg: 0, + deref_write_local: 0, + asserts: 0, + }; + if let Body::Structured(body) = &f.body { + let args = body.locals.arg_count; + let mut calls = Vec::new(); + body.body.dyn_visit(|st: &Statement| match &st.kind { + StatementKind::Call { call, .. } => calls.push(CallSite { + callee: callee(call), + site: site(krate, st.span), + }), + StatementKind::Assert { .. } => facts.asserts += 1, + StatementKind::Assign(place, _) if has_deref(place) => match root_local(place) { + Some(l) if l.index() <= args => facts.deref_write_arg += 1, + _ => facts.deref_write_local += 1, + }, + _ => {} + }); + facts.calls = Some(calls); + } + out.push(facts); + } + out +} + +/// The output of `llbc_calls.py `, byte for byte. +pub fn calls_text(llbc: &Llbc, crate_name: &str) -> String { + let krate = &llbc.krate; + let mut out = format!( + "has_errors\t{}\n", + if llbc.has_errors { "True" } else { "False" } + ); + for f in fun_facts(krate, crate_name) { + let calls: Vec = f + .calls + .unwrap_or_default() + .iter() + .map(|c| match &c.callee { + Callee::Fun(id) => { + let target = krate + .fun_decls + .get(*id) + .map(|t| path_name(&t.item_meta.name)) + .unwrap_or_else(|| id.index().to_string()); + format!("'static:{target}@{}'", id.index()) + } + Callee::Trait { kind, .. } => format!("'trait:{kind}'"), + Callee::Dynamic => "'dynamic'".to_owned(), + }) + .collect(); + let _ = writeln!( + out, + "{}\tid={}\tcalls=[{}]\tderef_write_arg={}\tderef_write_local={}\tassert={}", + f.name, + f.id.index(), + calls.join(", "), + f.deref_write_arg, + f.deref_write_local, + f.asserts + ); + } + out +} + +/// The witness grade of a relation, crai-rs `CR-H0-REVIEW-SEMANTICS` ยง2. +/// Everything this crate emits is read from compiler output. +pub const GRADE: &str = "COMPILER"; + +/// One relation row. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Relation { + pub predicate: &'static str, + pub subject: String, + pub object: String, + pub site: Option, +} + +/// Something Charon gave that no relation represents, with the reason. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Residual { + pub reason: &'static str, + pub subject: String, +} + +/// Counts of what was read and what became of it. +#[derive(Debug, Clone, Default, PartialEq, Eq)] +pub struct Receipt { + /// Local functions plus call statements read from their bodies. + pub harvested: usize, + pub represented: usize, + pub residual: usize, +} + +impl Receipt { + /// `harvested == represented + residual`: nothing was dropped silently. + pub fn conserved(&self) -> bool { + self.harvested == self.represented + self.residual + } +} + +/// Relation rows, residuals and the receipt for every local function. +pub fn relations( + krate: &TranslatedCrate, + crate_name: &str, +) -> (Vec, Vec, Receipt) { + let mut rows = Vec::new(); + let mut residual = Vec::new(); + let mut receipt = Receipt::default(); + for f in fun_facts(krate, crate_name) { + receipt.harvested += 1; + rows.push(Relation { + predicate: "DEFINES", + subject: f.qualified.clone(), + object: f.qualified.clone(), + site: f.site.clone(), + }); + let Some(calls) = f.calls else { + residual.push(Residual { + reason: "BODY_NOT_STRUCTURED", + subject: f.qualified.clone(), + }); + continue; + }; + for c in calls { + receipt.harvested += 1; + let (predicate, object) = match &c.callee { + Callee::Fun(id) => match krate.fun_decls.get(*id) { + Some(t) => ("CALLS_RESOLVED", qualified_name(krate, &t.item_meta.name)), + None => match krate.item_names.get(&ItemId::Fun(*id)) { + Some(n) => ("CALLS_RESOLVED", qualified_name(krate, n)), + None => { + residual.push(Residual { + reason: "CALLEE_NOT_NAMED", + subject: f.qualified.clone(), + }); + continue; + } + }, + }, + Callee::Trait { kind, trait_id } => { + let tr = trait_id + .and_then(|t| krate.item_names.get(&ItemId::TraitDecl(t))) + .map(|n| qualified_name(krate, n)) + .unwrap_or_else(|| "?".to_owned()); + let p = if kind == "TraitImpl" { + "CALLS_RESOLVED" + } else { + "MAY_DISPATCH" + }; + (p, format!("{tr} via {kind}")) + } + Callee::Dynamic => ("UNRESOLVED_CALL", "dynamic".to_owned()), + }; + rows.push(Relation { + predicate, + subject: f.qualified.clone(), + object, + site: c.site, + }); + } + } + receipt.represented = rows.len(); + receipt.residual = residual.len(); + (rows, residual, receipt) +} + +fn b64(data: &[u8]) -> String { + const T: &[u8; 64] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + let mut s = String::with_capacity(data.len().div_ceil(3) * 4); + for chunk in data.chunks(3) { + let n = chunk + .iter() + .enumerate() + .fold(0u32, |n, (i, &b)| n | u32::from(b) << (16 - 8 * i)); + for i in 0..4 { + if i <= chunk.len() { + s.push(T[(n >> (18 - 6 * i) & 63) as usize] as char); + } else { + s.push('='); + } + } + } + s +} + +fn vname(corpus: &str, signature: &str, path: &str, language: &str) -> serde_json::Value { + serde_json::json!({"signature": signature, "corpus": corpus, "root": "", "path": path, "language": language}) +} + +/// Kythe entries, one JSON object per line, in the shape `kythe_entries.py` +/// writes. Per local function: a `function` node and a `defines` anchor over +/// its item span. Per call: a `ref/call` anchor over the call statement's span +/// to the callee's node, `childof` the caller. A `MAY_DISPATCH` call points +/// at the trait (Kythe's own reading of a virtual call: the declaration, not +/// an implementation). `strip` is removed from the front of every file path. +pub fn kythe_entries( + krate: &TranslatedCrate, + crate_name: &str, + corpus: &str, + strip: &str, +) -> Vec { + let mut out = Vec::new(); + let mut seen = std::collections::HashSet::new(); + let mut emit = |v: serde_json::Value| { + let s = v.to_string(); + if seen.insert(s.clone()) { + out.push(s); + } + }; + let fact = |source: serde_json::Value, name: &str, value: &[u8]| serde_json::json!({"source": source, "fact_name": name, "fact_value": b64(value)}); + let path_of = |s: &Site| s.file.strip_prefix(strip).unwrap_or(&s.file).to_owned(); + let anchor = |s: &Site| { + vname( + corpus, + &format!("@{}:{}", s.start, s.end), + &path_of(s), + "rust", + ) + }; + // One `file` node per source file, with its text: Kythe places anchors + // through the file's text, and returns none for an anchor whose file it + // does not hold. + let mut files = std::collections::HashSet::new(); + let (rows, _, _) = relations(krate, crate_name); + for r in rows { + let Some(s) = &r.site else { continue }; + if files.insert(s.file.clone()) + && let Some(f) = krate.files.iter().find(|f| match &f.name { + FileName::Virtual(p) | FileName::Local(p) => p.display().to_string() == s.file, + FileName::NotReal(n) => *n == s.file, + }) + && let Some(text) = &f.contents + { + let node = vname(corpus, "", &path_of(s), ""); + emit(fact(node.clone(), "/kythe/node/kind", b"file")); + emit(fact(node, "/kythe/text", text.as_bytes())); + } + let a = anchor(s); + emit(fact(a.clone(), "/kythe/node/kind", b"anchor")); + emit(fact( + a.clone(), + "/kythe/loc/start", + s.start.to_string().as_bytes(), + )); + emit(fact( + a.clone(), + "/kythe/loc/end", + s.end.to_string().as_bytes(), + )); + let subject = vname(corpus, &r.subject, "", "rust"); + match r.predicate { + "DEFINES" => { + emit(fact(subject.clone(), "/kythe/node/kind", b"function")); + emit( + serde_json::json!({"source": a, "edge_kind": "/kythe/edge/defines", "target": subject, "fact_name": "/"}), + ); + } + "CALLS_RESOLVED" | "MAY_DISPATCH" => { + let target = r.object.split(" via ").next().unwrap_or(&r.object); + let callee = vname(corpus, target, "", "rust"); + emit( + serde_json::json!({"source": a.clone(), "edge_kind": "/kythe/edge/ref/call", "target": callee, "fact_name": "/"}), + ); + emit( + serde_json::json!({"source": a, "edge_kind": "/kythe/edge/childof", "target": subject, "fact_name": "/"}), + ); + } + _ => {} + } + } + out +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn variant_takes_the_tag_only() { + assert_eq!(variant("Clause(ClauseDbVar(0), [])".into()), "Clause"); + assert_eq!(variant("SelfId".into()), "SelfId"); + assert_eq!(variant("ItemClause { a: 1 }".into()), "ItemClause"); + } + + #[test] + fn base64_matches_the_standard_alphabet() { + assert_eq!(b64(b""), ""); + assert_eq!(b64(b"f"), "Zg=="); + assert_eq!(b64(b"fo"), "Zm8="); + assert_eq!(b64(b"foo"), "Zm9v"); + assert_eq!(b64(b"function"), "ZnVuY3Rpb24="); + } + + #[test] + fn receipt_conservation_is_exact() { + let ok = Receipt { + harvested: 5, + represented: 4, + residual: 1, + }; + let lost = Receipt { + harvested: 5, + represented: 3, + residual: 1, + }; + assert!(ok.conserved()); + assert!(!lost.conserved()); + } +} diff --git a/crates/ruff_charon/src/main.rs b/crates/ruff_charon/src/main.rs new file mode 100644 index 00000000000000..d84221ba006367 --- /dev/null +++ b/crates/ruff_charon/src/main.rs @@ -0,0 +1,79 @@ +//! `ruff_charon calls|rows|kythe [--corpus C] [--strip PREFIX]` +//! +//! - `calls`: the `llbc_calls.py` report, byte for byte. +//! - `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. + +use std::path::Path; +use std::process::ExitCode; + +fn main() -> ExitCode { + let args: Vec = std::env::args().collect(); + let flag = |name: &str| { + args.iter() + .position(|a| a == name) + .and_then(|i| args.get(i + 1)) + .cloned() + }; + let (Some(mode), Some(file), Some(krate)) = (args.get(1), args.get(2), args.get(3)) else { + eprintln!( + "usage: ruff_charon calls|rows|kythe [--corpus C] [--strip PREFIX]" + ); + return ExitCode::from(2); + }; + let llbc = match ruff_charon::load(Path::new(file)) { + Ok(l) => l, + Err(e) => { + eprintln!("ruff_charon: {e:#}"); + return ExitCode::from(2); + } + }; + match mode.as_str() { + "calls" => print!("{}", ruff_charon::calls_text(&llbc, krate)), + "rows" => { + let (rows, residual, receipt) = ruff_charon::relations(&llbc.krate, krate); + for r in &rows { + let (f, s, e) = r + .site + .as_ref() + .map_or(("-".into(), String::new(), String::new()), |s| { + (s.file.clone(), s.start.to_string(), s.end.to_string()) + }); + println!( + "{}\t{}\t{}\t{}\t{f}\t{s}\t{e}", + r.predicate, + r.subject, + r.object, + ruff_charon::GRADE + ); + } + for r in &residual { + println!("residual\t{}\t{}", r.reason, r.subject); + } + println!( + "receipt\tharvested={}\trepresented={}\tresidual={}\tconserved={}\thas_errors={}", + receipt.harvested, + receipt.represented, + receipt.residual, + receipt.conserved(), + llbc.has_errors + ); + if !receipt.conserved() { + return ExitCode::from(3); + } + } + "kythe" => { + let corpus = flag("--corpus").unwrap_or_else(|| "lance-graph".into()); + let strip = flag("--strip").unwrap_or_default(); + for e in ruff_charon::kythe_entries(&llbc.krate, krate, &corpus, &strip) { + println!("{e}"); + } + } + _ => { + eprintln!("unknown mode {mode}"); + return ExitCode::from(2); + } + } + ExitCode::SUCCESS +} diff --git a/crates/ruff_charon/tests/data/README.md b/crates/ruff_charon/tests/data/README.md new file mode 100644 index 00000000000000..af5afe1e766315 --- /dev/null +++ b/crates/ruff_charon/tests/data/README.md @@ -0,0 +1,11 @@ +# ruff_charon test data + +- `cg_lib.llbc`, `cg_app.llbc`: Charon LLBC of the two crates of lance-graph + `crates/sag-ra-probe/fixtures/codegraph/rev1`, produced with the AdaWorldAPI Charon fork + (`c69e231`, toolchain `nightly-2026-09-17`, built `--no-default-features --features rustc`): + + 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 + +- `*.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.llbc b/crates/ruff_charon/tests/data/cg_app.llbc new file mode 100644 index 00000000000000..52a6569865d0b4 --- /dev/null +++ b/crates/ruff_charon/tests/data/cg_app.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.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_dyn(&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":{"TraitDecl":0},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]}]},{"key":{"Type":3},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]},{"Builtin":["VTable",0]}]},{"key":{"Type":4},"value":[{"Builtin":[{"Tuple":2},0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",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":{"Fun":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["area_of",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":{"Global":1},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Builtin":["VTable",0]}]},{"key":{"Fun":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["area_dyn",0]}]},{"key":{"Fun":3},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Ident":["area",0]}]},{"key":{"Fun":4},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["double",0]}]},{"key":{"Type":5},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]},{"Builtin":["VTable",0]}]},{"key":{"Global":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Builtin":["VTable",0]}]},{"key":{"Fun":5},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Ident":["area",0]}]}],"assoc_item_names":[{"types":[],"methods":["area"],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":[],"consts":[]}],"short_names":[{"key":{"TraitImpl":0},"value":[{"Ident":["impl_Shape_for_Square",0]}]},{"key":{"TraitImpl":1},"value":[{"Ident":["impl_Shape_for_Rect",0]}]},{"key":{"Global":1},"value":[{"Impl":{"Trait":1}},{"Builtin":["VTable",0]}]},{"key":{"Fun":3},"value":[{"Impl":{"Trait":0}},{"Ident":["area",0]}]},{"key":{"Global":2},"value":[{"Impl":{"Trait":0}},{"Builtin":["VTable",0]}]},{"key":{"Fun":5},"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":2},"value":[{"Ident":["MetaSized",0]}]},{"key":{"Fun":2},"value":[{"Ident":["area_dyn",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["Sized",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["Shape",0]}]},{"key":{"Fun":1},"value":[{"Ident":["area_of",0]}]},{"key":{"Fun":4},"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":8,"col":0},"end":{"line":8,"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":8,"col":18},"end":{"line":8,"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":10,"col":0},"end":{"line":10,"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":10,"col":16},"end":{"line":10,"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":10,"col":25},"end":{"line":10,"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":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]},{"Builtin":["VTable",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":0},"end":{"line":4,"col":15}},"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},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":{"VTable":{"dyn_predicate":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}},"field_map":[],"supertrait_map":[null]}},"kind":"Opaque","layout":[],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}},{"def_id":4,"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":4,"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":4,"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},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_dyn(&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":20,"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":57}},"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":46}},"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":46}},"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":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":6},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":7}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}},"drop_flag_for":null},{"index":10,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":9},{"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":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":10},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":12,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":46}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":4,"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},{"index":13,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":49},"end":{"line":7,"col":57}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":14,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":49},"end":{"line":7,"col":50}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":11},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}},"drop_flag_for":null},{"index":15,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":57}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":4,"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},{"index":16,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":60},"end":{"line":7,"col":83}},"generated_from_span":null}},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}},"drop_flag_for":null},{"index":17,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":83}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":4,"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":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":12},"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":15},"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":17},"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":57}},"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":46}},"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":13}],"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":2,"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":1,"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":0,"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":46}},"generated_from_span":null}},"id":20,"kind":{"StorageLive":8},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":21,"kind":{"StorageLive":9},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":22,"kind":{"StorageLive":10},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":23,"kind":{"StorageLive":11},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":24,"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Untagged":{"Ref":[{"Body":10},{"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":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":25,"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":11},"ty":{"Untagged":{"Ref":[{"Body":10},{"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":43},"end":{"line":7,"col":45}},"generated_from_span":null}},"id":26,"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Untagged":{"Ref":[{"Body":6},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":7}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}},{"UnaryOp":[{"Cast":{"Unsize":[{"Untagged":{"Ref":[{"Body":14},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":15}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}},{"VTable":[{"regions":[],"regions_outlive":[],"types_outlive":[],"skip_binder":{"Untagged":{"kind":{"TraitImpl":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"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":[]}}}}},{"Untagged":[{"Ref":[{"kind":{"Global":{"Global":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},null]},{"Untagged":{"Ref":["Static",{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}]}]}]}},{"Move":{"kind":{"Local":10},"ty":{"Untagged":{"Ref":[{"Body":9},{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}}}]}]},"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":10},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":26},"end":{"line":7,"col":46}},"generated_from_span":null}},"id":29,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":2},"generics":{"regions":[{"Body":17}],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":9},"ty":{"Untagged":{"Ref":[{"Body":6},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":7}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"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":28,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":45},"end":{"line":7,"col":46}},"generated_from_span":null}},"id":30,"kind":{"StorageDead":9},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":46}},"generated_from_span":null}},"id":31,"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Untagged":{"Adt":{"id":4,"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":["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":46}},"generated_from_span":null}},"id":62,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Untagged":{"Adt":{"id":4,"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":[{"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":32,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":46}},"generated_from_span":null}},"id":33,"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Untagged":{"Adt":{"id":4,"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":0,"beg":{"line":7,"col":45},"end":{"line":7,"col":46}},"generated_from_span":null}},"id":34,"kind":{"StorageDead":8},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":45},"end":{"line":7,"col":46}},"generated_from_span":null}},"id":35,"kind":{"StorageDead":5},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":49},"end":{"line":7,"col":57}},"generated_from_span":null}},"id":36,"kind":{"StorageLive":13},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":49},"end":{"line":7,"col":50}},"generated_from_span":null}},"id":37,"kind":{"StorageLive":14},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":49},"end":{"line":7,"col":50}},"generated_from_span":null}},"id":38,"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Untagged":{"Ref":[{"Body":11},{"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":49},"end":{"line":7,"col":57}},"generated_from_span":null}},"id":40,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":3},"generics":{"regions":[{"Body":19}],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":14},"ty":{"Untagged":{"Ref":[{"Body":11},{"Untagged":{"Adt":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}}}],"dest":{"kind":{"Local":13},"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":39,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":56},"end":{"line":7,"col":57}},"generated_from_span":null}},"id":41,"kind":{"StorageDead":14},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":57}},"generated_from_span":null}},"id":42,"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Untagged":{"Adt":{"id":4,"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":["AddChecked",{"Copy":{"kind":{"Local":4},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Copy":{"kind":{"Local":13},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":57}},"generated_from_span":null}},"id":61,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":15},"ty":{"Untagged":{"Adt":{"id":4,"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":[{"Add":"Wrap"},{"Move":{"kind":{"Local":4},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Move":{"kind":{"Local":13},"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":43,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":57}},"generated_from_span":null}},"id":44,"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":15},"ty":{"Untagged":{"Adt":{"id":4,"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":0,"beg":{"line":7,"col":56},"end":{"line":7,"col":57}},"generated_from_span":null}},"id":45,"kind":{"StorageDead":13},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":56},"end":{"line":7,"col":57}},"generated_from_span":null}},"id":46,"kind":{"StorageDead":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":60},"end":{"line":7,"col":83}},"generated_from_span":null}},"id":47,"kind":{"StorageLive":16},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":60},"end":{"line":7,"col":83}},"generated_from_span":null}},"id":49,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":4},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","2"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}],"dest":{"kind":{"Local":16},"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":48,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":83}},"generated_from_span":null}},"id":50,"kind":{"Assign":[{"kind":{"Local":17},"ty":{"Untagged":{"Adt":{"id":4,"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":["AddChecked",{"Copy":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Copy":{"kind":{"Local":16},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":83}},"generated_from_span":null}},"id":60,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":17},"ty":{"Untagged":{"Adt":{"id":4,"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":[{"Add":"Wrap"},{"Move":{"kind":{"Local":3},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}},{"Move":{"kind":{"Local":16},"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":51,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":4},"end":{"line":7,"col":83}},"generated_from_span":null}},"id":52,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":17},"ty":{"Untagged":{"Adt":{"id":4,"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":0,"beg":{"line":7,"col":82},"end":{"line":7,"col":83}},"generated_from_span":null}},"id":53,"kind":{"StorageDead":16},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":7,"col":82},"end":{"line":7,"col":83}},"generated_from_span":null}},"id":54,"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":55,"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":56,"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":57,"kind":{"StorageDead":11},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":8,"col":0},"end":{"line":8,"col":1}},"generated_from_span":null}},"id":58,"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":59,"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":1,"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":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":"Opaque"},{"def_id":2,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["area_dyn",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":11,"col":0},"end":{"line":11,"col":45}},"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":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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":[2,0]}}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":"Opaque"},{"def_id":3,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":13,"col":4},"end":{"line":13,"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":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":"Opaque"},{"def_id":4,"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":5,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":19,"col":4},"end":{"line":19,"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":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":"Opaque"}],"global_decls":[null,{"def_id":1,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Builtin":["VTable",0]}],"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":18,"col":0},"end":{"line":18,"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},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":null},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"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":{"VTableInstance":{"self_ty":{"Untagged":{"Adt":{"id":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"impl_ref":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}},"global_kind":"VTable","value":{"Untagged":[{"Opaque":"VTable was chosen to be opaque"},{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":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":1,"beg":{"line":4,"col":0},"end":{"line":4,"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":4,"col":0},"end":{"line":6,"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":1,"beg":{"line":5,"col":4},"end":{"line":5,"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":[0,0]}}],"vtable":{"id":3,"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":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":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":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":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":12,"col":0},"end":{"line":12,"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":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":3,"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":1,"beg":{"line":18,"col":0},"end":{"line":18,"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":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":5,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[0,0]}}],"vtable":{"VTable":{"id":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}}],"ordered_decls":[{"TraitDecl":{"NonRec":2}},{"TraitDecl":{"NonRec":1}},{"Type":{"NonRec":4}},{"Type":{"NonRec":3}},{"TraitDecl":{"NonRec":0}},{"Fun":{"NonRec":1}},{"Fun":{"NonRec":2}},{"Type":{"NonRec":1}},{"Type":{"NonRec":2}},{"Fun":{"NonRec":3}},{"TraitImpl":{"NonRec":0}},{"Fun":{"NonRec":5}},{"Global":{"NonRec":1}},{"TraitImpl":{"NonRec":1}},{"Fun":{"NonRec":4}},{"Fun":{"NonRec":0}}]},"has_errors":false} \ No newline at end of file diff --git a/crates/ruff_charon/tests/data/cg_app.llbc_calls.txt b/crates/ruff_charon/tests/data/cg_app.llbc_calls.txt new file mode 100644 index 00000000000000..9e21b621ce887a --- /dev/null +++ b/crates/ruff_charon/tests/data/cg_app.llbc_calls.txt @@ -0,0 +1,2 @@ +has_errors False +cg_app::run id=0 calls=['static:cg_lib::area_of@1', 'static:cg_lib::area_dyn@2', 'static:cg_lib::shapes::Impl::area@3', 'static:cg_lib::util::double@4'] deref_write_arg=0 deref_write_local=0 assert=3 diff --git a/crates/ruff_charon/tests/data/cg_lib.llbc b/crates/ruff_charon/tests/data/cg_lib.llbc new file mode 100644 index 00000000000000..bb344729fc381d --- /dev/null +++ b/crates/ruff_charon/tests/data/cg_lib.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.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\npub fn area_dyn(s: &dyn shapes::Shape) -> 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::triple as t3;\n\npub fn checked() -> u32 {\n assert_eq!(t3(1), 3);\n 1\n}\n"},{"id":2,"name":{"Local":"cg_lib/src/shapes.rs"},"crate_name":"cg_lib","contents":"use crate::util::double;\nuse crate::util::triple;\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 triple(x: u32) -> u32 {\n x * 3\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":["area_dyn",0]}]},{"key":{"Fun":2},"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":3},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["double",0]}]},{"key":{"Fun":4},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["triple",0]}]},{"key":{"Fun":5},"value":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["unit",0]}]},{"key":{"Fun":6},"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":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]},{"Builtin":["VTable",0]}]},{"key":{"Type":4},"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":5},"value":[{"Ident":["core",0]},{"Ident":["panicking",0]},{"Ident":["AssertKind",0]}]},{"key":{"Type":6},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}]},{"key":{"Type":7},"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":7},"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":{"Global":2},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Builtin":["VTable",0]}]},{"key":{"Fun":8},"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":9},"value":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Ident":["area",0]}]},{"key":{"Fun":10},"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":11},"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":12},"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":8},"value":[{"Impl":{"Trait":0}},{"Ident":["area",0]}]},{"key":{"Global":3},"value":[{"Impl":{"Trait":1}},{"Builtin":["VTable",0]}]},{"key":{"Fun":9},"value":[{"Impl":{"Trait":1}},{"Ident":["area",0]}]},{"key":{"Global":4},"value":[{"Impl":{"Trait":2}},{"Builtin":["VTable",0]}]},{"key":{"Fun":12},"value":[{"Ident":["fmt",0]}]},{"key":{"Fun":1},"value":[{"Ident":["area_dyn",0]}]},{"key":{"Type":1},"value":[{"Ident":["Square",0]}]},{"key":{"Fun":3},"value":[{"Ident":["double",0]}]},{"key":{"Fun":10},"value":[{"Ident":["side",0]}]},{"key":{"Fun":0},"value":[{"Ident":["area_of",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["Sized",0]}]},{"key":{"Fun":6},"value":[{"Ident":["private_unused",0]}]},{"key":{"Fun":7},"value":[{"Ident":["assert_failed",0]}]},{"key":{"Fun":5},"value":[{"Ident":["unit",0]}]},{"key":{"Type":10},"value":[{"Ident":["Formatter",0]}]},{"key":{"Type":7},"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":2},"value":[{"Ident":["checked",0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["MetaSized",0]}]},{"key":{"Fun":4},"value":[{"Ident":["triple",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["Shape",0]}]},{"key":{"Type":6},"value":[{"Ident":["Option",0]}]},{"key":{"Global":1},"value":[{"Builtin":["PromotedConst",0]}]},{"key":{"Fun":11},"value":[{"Builtin":["PromotedConst",0]}]},{"key":{"TraitDecl":3},"value":[{"Ident":["Debug",0]}]},{"key":{"Type":5},"value":[{"Ident":["AssertKind",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":8,"col":0},"end":{"line":8,"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":8,"col":18},"end":{"line":8,"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":10,"col":0},"end":{"line":10,"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":10,"col":16},"end":{"line":10,"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":10,"col":25},"end":{"line":10,"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":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Ident":["Shape",0]},{"Builtin":["VTable",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":4,"col":0},"end":{"line":6,"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":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":[]},"src":{"VTable":{"dyn_predicate":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}},"field_map":["Size","Align","Drop",{"Method":0},{"SuperTrait":0}],"supertrait_map":[4]}},"kind":{"Struct":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":4,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"size","is_positional":false,"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":4,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"align","is_positional":false,"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":4,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"drop","is_positional":false,"ty":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":false}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":true,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Mut"]}}],"output":{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}}}}}},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":4,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"method_area","is_positional":false,"ty":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}}}},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":4,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"super_trait_0","is_positional":false,"ty":{"Untagged":{"Ref":["Static",{"Untagged":{"Adt":{"id":8,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}}]},"layout":[{"key":"x86_64-unknown-linux-gnu","value":{"size":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","40"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"AlignTo":{"base":{"Untagged":{"Max":[{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,0]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,1]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,2]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":false}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":true,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Mut"]}}],"output":{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,3]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}},{"Untagged":{"Plus":[{"Untagged":{"Constant":{"Untagged":[{"OffsetOf":[{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null},null,4]},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"SizeOf":{"Untagged":{"Ref":["Static",{"Untagged":{"Adt":{"id":8,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}]}},"target_align":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":false}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":true,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Mut"]}}],"output":{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Ref":["Static",{"Untagged":{"Adt":{"id":8,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}}}}},"align":{"chosen":{"Untagged":{"Constant":{"Untagged":[{"Integer":{"Unsigned":["Usize","8"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},"guarantee":{"Untagged":{"AtLeast":{"Untagged":{"Max":[{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":false}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":true,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Mut"]}}],"output":{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}},{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Ref":["Static",{"Untagged":{"Adt":{"id":8,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}]}}}}},"discriminator":null,"inhabited":{"Untagged":"True"},"variant_layouts":[{"field_offsets":[{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":0},{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":8},{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":false}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":true,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Mut"]}}],"output":{"Untagged":{"Adt":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":"Tuple"}}}}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":16},{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":24},{"guarantee":{"GuaranteedAlignment":{"Untagged":{"Constant":{"Untagged":[{"AlignOf":{"Untagged":{"Ref":["Static",{"Untagged":{"Adt":{"id":8,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"Usize"}}}}]}}}},"chosen":32}],"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":4,"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":4,"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":4,"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":5,"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":6,"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":6,"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":7,"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},{"def_id":8,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]},{"Builtin":["VTable",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":[],"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},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":{"VTable":{"dyn_predicate":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}},"field_map":[],"supertrait_map":[]}},"kind":"Opaque","layout":[],"ptr_metadata":"None","marker_traits":{"is_sized":true,"is_send":true,"is_sync":true,"is_freeze":true,"is_unpin":true}},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":["area_dyn",0]}],"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":11,"col":0},"end":{"line":13,"col":1}},"generated_from_span":null}},"source_text":"pub fn area_dyn(s: &dyn shapes::Shape) -> 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":[],"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":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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":[2,0]}}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"src":"Normal","body":{"Structured":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":11,"col":0},"end":{"line":13,"col":1}},"generated_from_span":null}},"bound_body_regions":11,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":11,"col":42},"end":{"line":11,"col":45}},"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":11,"col":16},"end":{"line":11,"col":17}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":3},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":4}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}},"drop_flag_for":null},{"index":2,"name":null,"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":12,"col":4},"end":{"line":12,"col":5}},"generated_from_span":null}},"ty":{"Untagged":{"Ref":[{"Body":5},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":6}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}},"drop_flag_for":null}]},"body":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":12,"col":4},"end":{"line":13,"col":1}},"generated_from_span":null}},"id":7,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":12,"col":4},"end":{"line":12,"col":5}},"generated_from_span":null}},"id":7,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":12,"col":4},"end":{"line":12,"col":5}},"generated_from_span":null}},"id":8,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":12,"col":4},"end":{"line":12,"col":5}},"generated_from_span":null}},"id":9,"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Untagged":{"Ref":[{"Body":5},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":6}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Ref":[{"Body":3},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":4}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":7}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}}},"kind":"Shared","ptr_metadata":{"Copy":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Untagged":{"Ref":[{"Body":3},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":4}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}},"PtrMetadata"]},"ty":{"Untagged":{"Ref":["Static",{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}}}}}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":12,"col":4},"end":{"line":12,"col":12}},"generated_from_span":null}},"id":11,"kind":{"Call":{"call":{"func":{"Dynamic":[{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":2},"ty":{"Untagged":{"Ref":[{"Body":5},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":6}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}},"PtrMetadata"]},"ty":{"Untagged":{"RawPtr":[{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}},"Shared"]}}},"Deref"]},"ty":{"Untagged":{"Adt":{"id":3,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Field":[null,3]}]},"ty":{"Untagged":{"FnPtr":{"regions":[{"index":0,"name":null,"variance":"Covariant","mutability":"Unknown","late_bound":true}],"regions_outlive":[],"types_outlive":[],"skip_binder":{"is_unsafe":false,"abi":"Rust","is_variadic":false,"inputs":[{"Untagged":{"Ref":[{"Var":{"Bound":[0,0]}},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},"Erased"]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}],"output":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}}}}}}},{"regions":[{"Body":10}]}]},"args":[{"Move":{"kind":{"Local":2},"ty":{"Untagged":{"Ref":[{"Body":5},{"Untagged":{"DynTrait":{"binder":{"params":{"regions":[],"types":[{"index":0,"name":"_dyn","variance":"Unknown"}],"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":"Dyn","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]}}},{"Body":6}]}],"trait_type_constraints":[]},"skip_binder":{"Untagged":{"TypeVar":{"Bound":[0,0]}}},"kind":"Dyn"}}}},"Shared"]}}}}],"dest":{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},"safety":"Inherit"},"on_unwind":{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":11,"col":0},"end":{"line":13,"col":1}},"generated_from_span":null}},"id":4,"statements":[{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":11,"col":0},"end":{"line":13,"col":1}},"generated_from_span":null}},"id":10,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":12,"col":11},"end":{"line":12,"col":12}},"generated_from_span":null}},"id":12,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":0,"beg":{"line":13,"col":1},"end":{"line":13,"col":1}},"generated_from_span":null}},"id":13,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":2,"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!(t3(1), 3);\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":4,"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":5,"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":5,"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":6,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":7,"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":7,"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":7,"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":7,"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":17,"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":14,"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":15,"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":17,"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":18,"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":19,"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":21,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":4},"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":8,"statements":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"id":20,"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":22,"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":23,"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":24,"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":25,"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":26,"kind":{"Assign":[{"kind":{"Local":1},"ty":{"Untagged":{"Adt":{"id":4,"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":4,"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":27,"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":28,"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":29,"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":30,"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":4,"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":31,"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":32,"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":4,"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":33,"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":34,"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":35,"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":36,"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":37,"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":38,"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":61,"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":9,"statements":[]},{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":4},"end":{"line":4,"col":24}},"generated_from_span":null}},"id":12,"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":40,"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":41,"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":42,"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":43,"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Untagged":{"Adt":{"id":5,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Aggregate":[{"Adt":[{"id":5,"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":44,"kind":{"Borrowck":{"FakeRead":{"kind":{"Local":10},"ty":{"Untagged":{"Adt":{"id":5,"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":45,"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":46,"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":47,"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Untagged":{"Adt":{"id":5,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}},{"Use":[{"Move":{"kind":{"Local":10},"ty":{"Untagged":{"Adt":{"id":5,"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":48,"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":49,"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":50,"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":51,"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":52,"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":53,"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":54,"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":55,"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":56,"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":57,"kind":{"Assign":[{"kind":{"Local":17},"ty":{"Untagged":{"Adt":{"id":6,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":7,"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":7,"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":7,"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":7,"generics":{"regions":[{"Body":30}],"types":[],"const_generics":[],"trait_refs":[]},"builtin":null}}}],"const_generics":[],"trait_refs":[]}}}}}]},"builtin":null}}}},{"Aggregate":[{"Adt":[{"id":6,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":7,"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":7,"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":7,"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":7,"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":59,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":7},"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":5,"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":6,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":7,"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":7,"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":7,"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":7,"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":10,"statements":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":3,"col":0},"end":{"line":6,"col":1}},"generated_from_span":null}},"id":58,"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":62,"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":63,"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":65,"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":66,"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":67,"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":68,"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":69,"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":71,"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":72,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":3,"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":4,"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":22,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":4,"col":4},"end":{"line":4,"col":5}},"generated_from_span":null}},"id":73,"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":74,"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":75,"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":76,"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":77,"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":4,"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":82,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":4,"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":18,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":3,"col":0},"end":{"line":5,"col":1}},"generated_from_span":null}},"id":78,"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":79,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":4,"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":80,"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":81,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":4,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["util",0]},{"Ident":["triple",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 triple(x: u32) -> u32 {\n x * 3\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":25},"end":{"line":7,"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":7,"col":14},"end":{"line":7,"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":8,"col":4},"end":{"line":8,"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":8,"col":4},"end":{"line":8,"col":9}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":4,"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":8,"col":4},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":27,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":4},"end":{"line":8,"col":5}},"generated_from_span":null}},"id":83,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":4},"end":{"line":8,"col":5}},"generated_from_span":null}},"id":84,"kind":{"StorageLive":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":4},"end":{"line":8,"col":5}},"generated_from_span":null}},"id":85,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":4},"end":{"line":8,"col":5}},"generated_from_span":null}},"id":86,"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":9}},"generated_from_span":null}},"id":87,"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":4,"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","3"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]}]},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":4},"end":{"line":8,"col":9}},"generated_from_span":null}},"id":92,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":4,"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","3"]}},{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}]}}]}},"on_failure":{"Panic":null},"on_unwind":{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":23,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":7,"col":0},"end":{"line":9,"col":1}},"generated_from_span":null}},"id":88,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":8,"col":4},"end":{"line":8,"col":9}},"generated_from_span":null}},"id":89,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Untagged":{"Adt":{"id":4,"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":8,"col":8},"end":{"line":8,"col":9}},"generated_from_span":null}},"id":90,"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":91,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":5,"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":29,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":12,"col":4},"end":{"line":12,"col":13}},"generated_from_span":null}},"id":93,"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":94,"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":95,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":6,"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":31,"statements":[{"span":{"Untagged":{"data":{"file_id":3,"beg":{"line":16,"col":4},"end":{"line":16,"col":5}},"generated_from_span":null}},"id":96,"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":97,"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":98,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":7,"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":5,"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":6,"generics":{"regions":[],"types":[{"Untagged":{"Adt":{"id":7,"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":7,"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":7,"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":7,"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":8,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":0}},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":4},"end":{"line":15,"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":13,"col":4},"end":{"line":15,"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":13,"col":22},"end":{"line":13,"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":13,"col":12},"end":{"line":13,"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":14,"col":8},"end":{"line":14,"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":14,"col":8},"end":{"line":14,"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":14,"col":15},"end":{"line":14,"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":14,"col":8},"end":{"line":14,"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":14,"col":29},"end":{"line":14,"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":14,"col":8},"end":{"line":14,"col":35}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":4,"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":14,"col":8},"end":{"line":15,"col":5}},"generated_from_span":null}},"id":41,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":8},"end":{"line":14,"col":26}},"generated_from_span":null}},"id":99,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":8},"end":{"line":14,"col":26}},"generated_from_span":null}},"id":100,"kind":{"StorageLive":5},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":8},"end":{"line":14,"col":26}},"generated_from_span":null}},"id":101,"kind":{"StorageLive":7},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":8},"end":{"line":14,"col":26}},"generated_from_span":null}},"id":102,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":8},"end":{"line":14,"col":22}},"generated_from_span":null}},"id":103,"kind":{"StorageLive":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":15},"end":{"line":14,"col":21}},"generated_from_span":null}},"id":104,"kind":{"StorageLive":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":15},"end":{"line":14,"col":21}},"generated_from_span":null}},"id":105,"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":14,"col":8},"end":{"line":14,"col":22}},"generated_from_span":null}},"id":107,"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":3},"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":13,"col":4},"end":{"line":15,"col":5}},"generated_from_span":null}},"id":32,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":4},"end":{"line":15,"col":5}},"generated_from_span":null}},"id":106,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":21},"end":{"line":14,"col":22}},"generated_from_span":null}},"id":108,"kind":{"StorageDead":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":8},"end":{"line":14,"col":26}},"generated_from_span":null}},"id":109,"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":14,"col":8},"end":{"line":14,"col":26}},"generated_from_span":null}},"id":122,"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":13,"col":4},"end":{"line":15,"col":5}},"generated_from_span":null}},"id":33,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":4},"end":{"line":15,"col":5}},"generated_from_span":null}},"id":110,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":8},"end":{"line":14,"col":26}},"generated_from_span":null}},"id":111,"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":14,"col":25},"end":{"line":14,"col":26}},"generated_from_span":null}},"id":112,"kind":{"StorageDead":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":29},"end":{"line":14,"col":35}},"generated_from_span":null}},"id":113,"kind":{"StorageLive":6},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":29},"end":{"line":14,"col":35}},"generated_from_span":null}},"id":114,"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":14,"col":8},"end":{"line":14,"col":35}},"generated_from_span":null}},"id":115,"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Untagged":{"Adt":{"id":4,"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":14,"col":8},"end":{"line":14,"col":35}},"generated_from_span":null}},"id":121,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Untagged":{"Adt":{"id":4,"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":13,"col":4},"end":{"line":15,"col":5}},"generated_from_span":null}},"id":34,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":13,"col":4},"end":{"line":15,"col":5}},"generated_from_span":null}},"id":116,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":8},"end":{"line":14,"col":35}},"generated_from_span":null}},"id":117,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Untagged":{"Adt":{"id":4,"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":14,"col":34},"end":{"line":14,"col":35}},"generated_from_span":null}},"id":118,"kind":{"StorageDead":6},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":14,"col":34},"end":{"line":14,"col":35}},"generated_from_span":null}},"id":119,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":15,"col":5},"end":{"line":15,"col":5}},"generated_from_span":null}},"id":120,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":9,"item_meta":{"name":[{"Ident":["cg_lib",0]},{"Ident":["shapes",0]},{"Impl":{"Trait":1}},{"Ident":["area",0]}],"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":4},"end":{"line":21,"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":19,"col":4},"end":{"line":21,"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":19,"col":22},"end":{"line":19,"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":19,"col":12},"end":{"line":19,"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":20,"col":8},"end":{"line":20,"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":20,"col":17},"end":{"line":20,"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":20,"col":8},"end":{"line":20,"col":23}},"generated_from_span":null}},"ty":{"Untagged":{"Adt":{"id":4,"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":20,"col":8},"end":{"line":21,"col":5}},"generated_from_span":null}},"id":46,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":20,"col":8},"end":{"line":20,"col":14}},"generated_from_span":null}},"id":123,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":20,"col":8},"end":{"line":20,"col":14}},"generated_from_span":null}},"id":124,"kind":{"StorageLive":4},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":20,"col":8},"end":{"line":20,"col":14}},"generated_from_span":null}},"id":125,"kind":{"StorageLive":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":20,"col":8},"end":{"line":20,"col":14}},"generated_from_span":null}},"id":126,"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":20,"col":17},"end":{"line":20,"col":23}},"generated_from_span":null}},"id":127,"kind":{"StorageLive":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":20,"col":17},"end":{"line":20,"col":23}},"generated_from_span":null}},"id":128,"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":20,"col":8},"end":{"line":20,"col":23}},"generated_from_span":null}},"id":129,"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Untagged":{"Adt":{"id":4,"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":20,"col":8},"end":{"line":20,"col":23}},"generated_from_span":null}},"id":135,"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Untagged":{"Adt":{"id":4,"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":19,"col":4},"end":{"line":21,"col":5}},"generated_from_span":null}},"id":42,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":19,"col":4},"end":{"line":21,"col":5}},"generated_from_span":null}},"id":130,"kind":"UnwindResume","comments_before":[]}]}}},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":20,"col":8},"end":{"line":20,"col":23}},"generated_from_span":null}},"id":131,"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Move":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Untagged":{"Adt":{"id":4,"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":20,"col":22},"end":{"line":20,"col":23}},"generated_from_span":null}},"id":132,"kind":{"StorageDead":3},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":20,"col":22},"end":{"line":20,"col":23}},"generated_from_span":null}},"id":133,"kind":{"StorageDead":2},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":21,"col":5},"end":{"line":21,"col":5}},"generated_from_span":null}},"id":134,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":10,"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":25,"col":4},"end":{"line":27,"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":25,"col":4},"end":{"line":27,"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":25,"col":26},"end":{"line":25,"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":25,"col":16},"end":{"line":25,"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":26,"col":8},"end":{"line":27,"col":5}},"generated_from_span":null}},"id":48,"statements":[{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":26,"col":8},"end":{"line":26,"col":14}},"generated_from_span":null}},"id":136,"kind":{"StorageLive":0},"comments_before":[]},{"span":{"Untagged":{"data":{"file_id":2,"beg":{"line":26,"col":8},"end":{"line":26,"col":14}},"generated_from_span":null}},"id":137,"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":27,"col":5},"end":{"line":27,"col":5}},"generated_from_span":null}},"id":138,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":11,"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":50,"statements":[{"span":{"Untagged":{"data":{"file_id":1,"beg":{"line":4,"col":22},"end":{"line":4,"col":23}},"generated_from_span":null}},"id":139,"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":140,"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":141,"kind":{"Assign":[{"kind":{"Local":1},"ty":{"Untagged":{"Scalar":{"Integer":{"Unsigned":"U32"}}}}},{"Use":[{"Const":{"Untagged":[{"Integer":{"Unsigned":["U32","3"]}},{"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":142,"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":143,"kind":"Return","comments_before":[]}]},"comments":[]}}},{"def_id":12,"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":11},"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":4,"col":0},"end":{"line":6,"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":4,"col":0},"end":{"line":6,"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":5,"col":4},"end":{"line":5,"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":3,"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":12,"col":0},"end":{"line":16,"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":8,"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":18,"col":0},"end":{"line":22,"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":9,"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":12,"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":7}},{"Type":{"NonRec":0}},{"Type":{"NonRec":8}},{"TraitDecl":{"NonRec":2}},{"TraitDecl":{"NonRec":1}},{"Type":{"NonRec":11}},{"TraitDecl":{"NonRec":3}},{"Fun":{"NonRec":12}},{"TraitImpl":{"NonRec":2}},{"Type":{"NonRec":6}},{"Type":{"NonRec":5}},{"Fun":{"NonRec":7}},{"Type":{"NonRec":4}},{"Mixed":{"Rec":[{"Type":3},{"TraitDecl":0}]}},{"Fun":{"NonRec":0}},{"Fun":{"NonRec":1}},{"Fun":{"NonRec":4}},{"Fun":{"NonRec":11}},{"Global":{"NonRec":1}},{"Fun":{"NonRec":2}},{"Type":{"NonRec":1}},{"Type":{"NonRec":2}},{"Fun":{"NonRec":3}},{"Fun":{"NonRec":8}},{"TraitImpl":{"NonRec":0}},{"Fun":{"NonRec":9}},{"TraitImpl":{"NonRec":1}},{"Fun":{"NonRec":10}},{"Fun":{"NonRec":5}},{"Fun":{"NonRec":6}}]},"has_errors":false} \ No newline at end of file diff --git a/crates/ruff_charon/tests/data/cg_lib.llbc_calls.txt b/crates/ruff_charon/tests/data/cg_lib.llbc_calls.txt new file mode 100644 index 00000000000000..245143ad020d7e --- /dev/null +++ b/crates/ruff_charon/tests/data/cg_lib.llbc_calls.txt @@ -0,0 +1,12 @@ +has_errors False +cg_lib::area_of id=0 calls=['trait:Clause'] deref_write_arg=0 deref_write_local=0 assert=0 +cg_lib::area_dyn id=1 calls=['dynamic'] deref_write_arg=0 deref_write_local=0 assert=0 +cg_lib::macro_use::checked id=2 calls=['static:cg_lib::util::triple@4', 'static:core::panicking::assert_failed@7'] deref_write_arg=0 deref_write_local=0 assert=0 +cg_lib::util::double id=3 calls=[] deref_write_arg=0 deref_write_local=0 assert=1 +cg_lib::util::triple id=4 calls=[] deref_write_arg=0 deref_write_local=0 assert=1 +cg_lib::util::unit id=5 calls=[] deref_write_arg=0 deref_write_local=0 assert=0 +cg_lib::util::private_unused id=6 calls=[] deref_write_arg=0 deref_write_local=0 assert=0 +cg_lib::shapes::Impl::area id=8 calls=['static:cg_lib::util::double@3'] deref_write_arg=0 deref_write_local=0 assert=2 +cg_lib::shapes::Impl::area id=9 calls=[] deref_write_arg=0 deref_write_local=0 assert=1 +cg_lib::shapes::Impl::side id=10 calls=[] deref_write_arg=0 deref_write_local=0 assert=0 +cg_lib::macro_use::checked::Builtin id=11 calls=[] deref_write_arg=0 deref_write_local=0 assert=0 diff --git a/crates/ruff_charon/tests/intake.rs b/crates/ruff_charon/tests/intake.rs new file mode 100644 index 00000000000000..072501a1eac499 --- /dev/null +++ b/crates/ruff_charon/tests/intake.rs @@ -0,0 +1,129 @@ +//! The intake checked against the codegraph fixture (lance-graph +//! `crates/sag-ra-probe/fixtures/codegraph/rev1`). The LLBC files and the +//! `llbc_calls.py` reference outputs are in `tests/data`; see its README. + +use std::path::{Path, PathBuf}; + +use ruff_charon::{ + Relation, calls_text, kythe_entries, load, path_name, qualified_name, relations, +}; + +fn data(name: &str) -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")) + .join("tests/data") + .join(name) +} + +fn rows(file: &str, krate: &str) -> Vec { + let llbc = load(&data(file)).expect("llbc"); + relations(&llbc.krate, krate).0 +} + +fn find<'a>(rows: &'a [Relation], predicate: &str, subject: &str) -> Vec<&'a Relation> { + rows.iter() + .filter(|r| r.predicate == predicate && r.subject == subject) + .collect() +} + +/// The Rust reader reproduces the reference script byte for byte. +#[test] +#[expect( + clippy::disallowed_methods, + reason = "a test reading its own data file; the ty `System` abstraction does not apply here" +)] +fn calls_report_equals_the_reference_script() { + for (file, krate) in [("cg_lib.llbc", "cg_lib"), ("cg_app.llbc", "cg_app")] { + let llbc = load(&data(file)).expect("llbc"); + let want = std::fs::read_to_string(data(&format!("{file}_calls.txt"))).expect("reference"); + assert_eq!(calls_text(&llbc, krate), want, "{file}"); + } +} + +/// A call through a generic bound is a possible dispatch, a call through +/// `dyn` is unresolved, and neither is a confirmed caller of an impl. +#[test] +fn dispatch_is_never_a_confirmed_call() { + let rows = rows("cg_lib.llbc", "cg_lib"); + let bound = find(&rows, "MAY_DISPATCH", "cg_lib::area_of"); + assert_eq!(bound.len(), 1, "{rows:#?}"); + assert_eq!(bound[0].object, "cg_lib::shapes::Shape via Clause"); + assert!(find(&rows, "CALLS_RESOLVED", "cg_lib::area_of").is_empty()); + let dynamic = find(&rows, "UNRESOLVED_CALL", "cg_lib::area_dyn"); + assert_eq!(dynamic.len(), 1); + assert!(find(&rows, "CALLS_RESOLVED", "cg_lib::area_dyn").is_empty()); +} + +/// The call inside `assert_eq!`, through the alias `t3`, is witnessed with +/// the exact span of `t3(1)` (rust-analyzer's call hierarchy misses it). +#[test] +fn the_call_inside_a_macro_is_witnessed() { + let rows = rows("cg_lib.llbc", "cg_lib"); + let hit: Vec<_> = find(&rows, "CALLS_RESOLVED", "cg_lib::macro_use::checked") + .into_iter() + .filter(|r| r.object == "cg_lib::util::triple") + .collect(); + assert_eq!(hit.len(), 1); + let s = hit[0].site.as_ref().expect("site"); + assert_eq!( + (s.file.as_str(), s.start, s.end), + ("cg_lib/src/macro_use.rs", 73, 78) + ); +} + +/// The two `Shape::area` impls print the same as paths but are distinct +/// items, and a cross-crate caller names the one it calls. +#[test] +fn impl_methods_keep_distinct_identities_across_crates() { + let llbc = load(&data("cg_lib.llbc")).expect("llbc"); + let areas: Vec<_> = llbc + .krate + .fun_decls + .iter() + .filter(|f| path_name(&f.item_meta.name) == "cg_lib::shapes::Impl::area") + .map(|f| qualified_name(&llbc.krate, &f.item_meta.name)) + .collect(); + assert_eq!(areas.len(), 2); + assert_ne!(areas[0], areas[1]); + let app = rows("cg_app.llbc", "cg_app"); + let objects: Vec<_> = find(&app, "CALLS_RESOLVED", "cg_app::run") + .iter() + .map(|r| r.object.clone()) + .collect(); + assert!( + objects.contains(&"cg_lib::shapes::impl_Shape_for_Square::area".to_owned()), + "{objects:?}" + ); + assert!(!objects.iter().any(|o| o.contains("Rect")), "{objects:?}"); +} + +/// Every function and every call is represented or counted as residual. +#[test] +fn receipt_conserves() { + let llbc = load(&data("cg_lib.llbc")).expect("llbc"); + let (rows, residual, receipt) = relations(&llbc.krate, "cg_lib"); + assert!(receipt.conserved(), "{receipt:?}"); + assert_eq!(receipt.represented, rows.len()); + assert_eq!(receipt.residual, residual.len()); + // 11 local functions, 5 call statements (llbc_calls.py's count). + assert_eq!(receipt.harvested, 16); +} + +/// The Kythe entries carry the macro call as a `ref/call` anchor and the +/// file text Kythe needs to serve it. +#[test] +fn kythe_entries_carry_the_call_and_its_file() { + let llbc = load(&data("cg_lib.llbc")).expect("llbc"); + let entries = kythe_entries(&llbc.krate, "cg_lib", "lance-graph", ""); + let call = entries.iter().find(|e| { + e.contains("\"edge_kind\":\"/kythe/edge/ref/call\"") + && e.contains("\"signature\":\"@73:78\"") + && e.contains("\"signature\":\"cg_lib::util::triple\"") + }); + assert!(call.is_some(), "no ref/call anchor for t3(1)"); + assert!( + entries + .iter() + .any(|e| e.contains("\"fact_name\":\"/kythe/text\"") + && e.contains("\"path\":\"cg_lib/src/macro_use.rs\"")) + ); +}