From 65ede6d04c647dd12a3f59d7ad37df167e8f8795 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Sun, 26 May 2024 01:54:30 -0400 Subject: [PATCH 01/17] update deps to get node compilation --- evm-template/Cargo.lock | 1974 ++++++++++++++++++------------- evm-template/Cargo.toml | 3 + evm-template/runtime/Cargo.toml | 5 + 3 files changed, 1164 insertions(+), 818 deletions(-) diff --git a/evm-template/Cargo.lock b/evm-template/Cargo.lock index 63378ae2..9a684fc6 100644 --- a/evm-template/Cargo.lock +++ b/evm-template/Cargo.lock @@ -77,19 +77,19 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.15", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.12", + "getrandom 0.2.15", "once_cell", "version_check", "zerocopy", @@ -97,18 +97,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "always-assert" @@ -142,47 +142,48 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -190,9 +191,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "approx" @@ -214,7 +215,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -512,9 +513,9 @@ checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" [[package]] name = "array-bytes" -version = "6.2.2" +version = "6.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" +checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" @@ -531,12 +532,6 @@ dependencies = [ "nodrop", ] -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.4" @@ -624,28 +619,26 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 5.1.0", - "event-listener-strategy 0.5.0", + "event-listener-strategy 0.5.2", "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0" dependencies = [ - "async-lock 3.3.0", "async-task", "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.2.0", + "fastrand 2.1.0", + "futures-lite 2.3.0", "slab", ] @@ -683,18 +676,18 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ "async-lock 3.3.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "parking", - "polling 3.5.0", - "rustix 0.38.31", + "polling 3.7.0", + "rustix 0.38.34", "slab", "tracing", "windows-sys 0.52.0", @@ -717,7 +710,7 @@ checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ "event-listener 4.0.3", "event-listener-strategy 0.4.0", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -744,43 +737,43 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.31", + "rustix 0.38.34", "windows-sys 0.48.0", ] [[package]] name = "async-signal" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" dependencies = [ - "async-io 2.3.1", - "async-lock 2.8.0", + "async-io 2.3.2", + "async-lock 3.3.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.31", + "rustix 0.38.34", "signal-hook-registry", "slab", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "async-task" -version = "4.7.0" +version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -793,7 +786,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -808,17 +801,34 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "az" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line 0.21.0", "cc", @@ -842,7 +852,7 @@ dependencies = [ "ark-std", "dleq_vrf", "fflonk", - "merlin 3.0.0", + "merlin", "rand_chacha 0.3.1", "rand_core 0.6.4", "ring 0.1.0", @@ -921,13 +931,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.16", + "prettyplease 0.2.20", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -957,9 +967,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bitvec" @@ -1029,9 +1039,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" dependencies = [ "arrayref", "arrayvec 0.7.4", @@ -1040,18 +1050,6 @@ dependencies = [ "constant_time_eq 0.3.0", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -1070,29 +1068,17 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "blocking" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel 2.2.0", - "async-lock 3.3.0", + "async-channel 2.3.1", "async-task", - "fastrand 2.0.1", "futures-io", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "piper", - "tracing", ] [[package]] @@ -1135,9 +1121,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "tinyvec", ] @@ -1153,9 +1139,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -1171,9 +1157,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.14.3" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" [[package]] name = "byteorder" @@ -1183,9 +1169,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "bzip2-sys" @@ -1210,18 +1196,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ "serde", ] @@ -1234,7 +1220,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.22", + "semver 1.0.23", "serde", "serde_json", "thiserror", @@ -1242,12 +1228,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" dependencies = [ "jobserver", "libc", + "once_cell", ] [[package]] @@ -1261,9 +1248,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", ] @@ -1316,16 +1303,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.5", ] [[package]] @@ -1383,9 +1370,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -1393,9 +1380,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", @@ -1406,14 +1393,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -1445,39 +1432,39 @@ dependencies = [ [[package]] name = "color-print" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a858372ff14bab9b1b30ea504f2a4bc534582aee3e42ba2d41d2a7baba63d5d" +checksum = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" dependencies = [ "color-print-proc-macro", ] [[package]] name = "color-print-proc-macro" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e37866456a721d0a404439a1adae37a31be4e0055590d053dfe6981e05003f" +checksum = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" dependencies = [ "nom", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "comfy-table" -version = "7.1.0" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" +checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" dependencies = [ - "strum 0.25.0", - "strum_macros 0.25.3", + "strum 0.26.2", + "strum_macros 0.26.2", "unicode-width", ] @@ -1493,7 +1480,7 @@ dependencies = [ "ark-std", "fflonk", "getrandom_or_panic", - "merlin 3.0.0", + "merlin", "rand_chacha 0.3.1", ] @@ -1505,9 +1492,9 @@ checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -1533,9 +1520,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -1546,7 +1533,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.15", "once_cell", "tiny-keccak", ] @@ -1728,9 +1715,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] @@ -1765,9 +1752,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -1864,7 +1851,7 @@ dependencies = [ "cumulus-primitives-core", "futures", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", @@ -1973,7 +1960,7 @@ dependencies = [ "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-parachain-primitives", "polkadot-primitives", @@ -2130,7 +2117,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -2312,13 +2299,13 @@ name = "cumulus-relay-chain-minimal-node" version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", "polkadot-core-primitives", @@ -2401,19 +2388,6 @@ dependencies = [ "sp-trie", ] -[[package]] -name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle 2.5.0", - "zeroize", -] - [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -2452,7 +2426,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -2470,9 +2444,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.117" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c15f3b597018782655a05d417f28bac009f6eb60f4b6703eb818998c1aaa16a" +checksum = "bb497fad022245b29c2a0351df572e2d67c1046bcef2260ebc022aec81efea82" dependencies = [ "cc", "cxxbridge-flags", @@ -2482,9 +2456,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.117" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81699747d109bba60bd6f87e7cb24b626824b8427b32f199b95c7faa06ee3dc9" +checksum = "9327c7f9fbd6329a200a5d4aa6f674c60ab256525ff0084b52a889d4e4c60cee" dependencies = [ "cc", "codespan-reporting", @@ -2492,37 +2466,37 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "cxxbridge-flags" -version = "1.0.117" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a7eb4c4fd18505f5a935f9c2ee77780350dcdb56da7cd037634e806141c5c43" +checksum = "688c799a4a846f1c0acb9f36bb9c6272d9b3d9457f3633c7753c6057270df13c" [[package]] name = "cxxbridge-macro" -version = "1.0.117" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d914fcc6452d133236ee067a9538be25ba6a644a450e1a6c617da84bf029854" +checksum = "928bc249a7e3cd554fd2e8e08a426e9670c50bbfc9a621653cfa9accc9641783" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-encoding-macro" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2530,9 +2504,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" dependencies = [ "data-encoding", "syn 1.0.109", @@ -2540,9 +2514,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -2593,6 +2567,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -2692,7 +2677,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -2713,28 +2698,28 @@ dependencies = [ [[package]] name = "docify" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" dependencies = [ "common-path", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.50", + "syn 2.0.66", "termcolor", - "toml 0.8.10", + "toml 0.8.13", "walkdir", ] @@ -2746,9 +2731,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dtoa" @@ -2779,9 +2764,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -2844,7 +2829,7 @@ checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek 4.1.2", "ed25519", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "rand_core 0.6.4", "sha2 0.10.8", @@ -2853,9 +2838,9 @@ dependencies = [ [[package]] name = "either" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] name = "elliptic-curve" @@ -2888,7 +2873,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "syn 1.0.109", @@ -2911,7 +2896,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -2922,7 +2907,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -2952,14 +2937,63 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", ] +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" +dependencies = [ + "bytes", + "ethereum-types", + "hash-db", + "hash256-std-hasher", + "parity-scale-codec", + "rlp", + "scale-info", + "serde", + "sha3", + "trie-root", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -2974,7 +3008,7 @@ checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -2985,18 +3019,18 @@ checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "event-listener" -version = "5.1.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27" +checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -3006,17 +3040,75 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ "event-listener 4.0.3", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "event-listener-strategy" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.1.0", - "pin-project-lite 0.2.13", + "event-listener 5.3.0", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "evm" +version = "0.41.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767f43e9630cc36cf8ff2777cbb0121b055f0d1fd6eaaa13b46a1808f0d0e7e9" +dependencies = [ + "auto_impl", + "environmental", + "ethereum", + "evm-core", + "evm-gasometer", + "evm-runtime", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "scale-info", + "serde", + "sha3", +] + +[[package]] +name = "evm-core" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1da6cedc5cedb4208e59467106db0d1f50db01b920920589f8e672c02fdc04f" +dependencies = [ + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", +] + +[[package]] +name = "evm-gasometer" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc0eb591abc5cd7b05bef6a036c2bb6c66ab6c5e0c5ce94bfe377ab670b1fd7" +dependencies = [ + "environmental", + "evm-core", + "evm-runtime", + "primitive-types", +] + +[[package]] +name = "evm-runtime" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84bbe09b64ae13a29514048c1bb6fda6374ac0b4f6a1f15a443348ab88ef42cd" +dependencies = [ + "auto_impl", + "environmental", + "evm-core", + "primitive-types", + "sha3", ] [[package]] @@ -3042,23 +3134,18 @@ dependencies = [ [[package]] name = "expander" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "00e83c02035136f1592a47964ea60c05a50e4ed8b5892cfac197063850898d4d" dependencies = [ "blake2 0.10.6", "fs-err", + "prettier-please", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -3076,9 +3163,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "fatality" @@ -3135,14 +3222,14 @@ dependencies = [ "ark-poly", "ark-serialize", "ark-std", - "merlin 3.0.0", + "merlin", ] [[package]] name = "fiat-crypto" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "file-per-thread-logger" @@ -3178,10 +3265,23 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "scale-info", ] +[[package]] +name = "fixed" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36a65312835c1097a0c926ff3702df965285fadc33d948b87397ff8961bad881" +dependencies = [ + "az", + "bytemuck", + "half", + "num-traits", + "typenum", +] + [[package]] name = "fixed-hash" version = "0.8.0" @@ -3202,9 +3302,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "libz-sys", @@ -3262,6 +3362,22 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", ] +[[package]] +name = "fp-evm" +version = "3.0.0-dev" +source = "git+https://github.com/OpenZeppelin/frontier?branch=polkadot-v1.7.0#8037bf8d7401357d321d837c9b92729519c81e45" +dependencies = [ + "evm", + "frame-support", + "num_enum", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + [[package]] name = "fragile" version = "2.0.0" @@ -3299,7 +3415,7 @@ version = "32.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ "Inflector", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "chrono", "clap", "comfy-table", @@ -3349,7 +3465,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -3427,7 +3543,7 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ "aquamarine", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bitflags 1.3.2", "docify", "environmental", @@ -3469,8 +3585,8 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse", - "expander 2.0.0", + "derive-syn-parse 0.1.5", + "expander 2.1.0", "frame-support-procedural-tools", "itertools 0.10.5", "macro_magic", @@ -3478,7 +3594,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -3490,7 +3606,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -3500,7 +3616,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -3584,7 +3700,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.34", "windows-sys 0.48.0", ] @@ -3654,21 +3770,21 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "waker-fn", ] [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.0.1", + "fastrand 2.1.0", "futures-core", "futures-io", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -3679,7 +3795,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -3707,9 +3823,9 @@ checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" @@ -3724,7 +3840,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "pin-utils", "slab", ] @@ -3781,9 +3897,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -3802,11 +3918,11 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "polyval", ] @@ -3846,9 +3962,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -3856,13 +3972,19 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.3", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", "tracing", ] +[[package]] +name = "half" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" + [[package]] name = "handlebars" version = "4.5.0" @@ -3907,16 +4029,16 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", "allocator-api2", "serde", ] @@ -3927,7 +4049,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -3936,11 +4058,17 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -3948,6 +4076,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + [[package]] name = "hex-literal" version = "0.4.1" @@ -4025,9 +4159,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -4042,7 +4176,7 @@ checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -4069,6 +4203,35 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +[[package]] +name = "hydra-dx-math" +version = "8.1.1" +source = "git+https://github.com/OpenZeppelin/HydraDX-node?branch=polkadot-v1.7.0#2777b7e231dade815ff2b2d9b751557a74eee41a" +dependencies = [ + "fixed", + "num-traits", + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", + "sp-arithmetic", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + +[[package]] +name = "hydradx-traits" +version = "3.3.1" +source = "git+https://github.com/OpenZeppelin/HydraDX-node?branch=polkadot-v1.7.0#2777b7e231dade815ff2b2d9b751557a74eee41a" +dependencies = [ + "frame-support", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + [[package]] name = "hyper" version = "0.14.28" @@ -4085,8 +4248,8 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.13", - "socket2 0.5.5", + "pin-project-lite 0.2.14", + "socket2 0.5.7", "tokio", "tower-service", "tracing", @@ -4103,7 +4266,7 @@ dependencies = [ "http", "hyper", "log", - "rustls 0.21.10", + "rustls 0.21.12", "rustls-native-certs", "tokio", "tokio-rustls", @@ -4169,7 +4332,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io 2.3.1", + "async-io 2.3.2", "core-foundation", "fnv", "futures", @@ -4191,6 +4354,15 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + [[package]] name = "impl-serde" version = "0.4.0" @@ -4243,12 +4415,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.3" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -4281,9 +4453,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -4326,7 +4498,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.5", + "socket2 0.5.7", "widestring", "windows-sys 0.48.0", "winreg", @@ -4358,6 +4530,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + [[package]] name = "itertools" version = "0.10.5" @@ -4376,26 +4554,35 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.28" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -4450,7 +4637,7 @@ dependencies = [ "futures-util", "hyper", "jsonrpsee-types", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rand", "rustc-hash", "serde", @@ -4487,7 +4674,7 @@ version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29110019693a4fa2dbda04876499d098fa16d70eba06b1e6e2b3f1b251419515" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro-crate 1.3.1", "proc-macro2", "quote", @@ -4588,7 +4775,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] @@ -4599,7 +4786,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "regex", "rocksdb", "smallvec", @@ -4607,9 +4794,9 @@ dependencies = [ [[package]] name = "landlock" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1530c5b973eeed4ac216af7e24baf5737645a6272e361f1fb95710678b67d9cc" +checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" dependencies = [ "enumflags2", "libc", @@ -4630,18 +4817,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.5", ] [[package]] @@ -4659,7 +4846,7 @@ dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.12", + "getrandom 0.2.15", "instant", "libp2p-allow-block-list", "libp2p-connection-limits", @@ -4724,7 +4911,7 @@ dependencies = [ "multihash 0.17.0", "multistream-select", "once_cell", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "quick-protobuf", "rand", @@ -4744,7 +4931,7 @@ dependencies = [ "futures", "libp2p-core", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "smallvec", "trust-dns-resolver", ] @@ -4906,7 +5093,7 @@ dependencies = [ "libp2p-identity", "libp2p-tls", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "quinn-proto", "rand", "rustls 0.20.9", @@ -4957,7 +5144,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ - "heck", + "heck 0.4.1", "quote", "syn 1.0.109", ] @@ -5022,7 +5209,7 @@ dependencies = [ "futures-rustls", "libp2p-core", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "quicksink", "rw-stream-sink", "soketto", @@ -5045,13 +5232,12 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "libc", - "redox_syscall 0.4.1", ] [[package]] @@ -5119,9 +5305,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.15" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "pkg-config", @@ -5175,9 +5361,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lioness" @@ -5193,9 +5379,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -5203,9 +5389,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "lru" @@ -5269,7 +5455,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -5279,11 +5465,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" dependencies = [ "const-random", - "derive-syn-parse", + "derive-syn-parse 0.1.5", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -5294,7 +5480,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -5305,7 +5491,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -5329,6 +5515,15 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "matches" version = "0.1.10" @@ -5347,9 +5542,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memfd" @@ -5357,7 +5552,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.34", ] [[package]] @@ -5396,18 +5591,6 @@ dependencies = [ "hash-db", ] -[[package]] -name = "merlin" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", -] - [[package]] name = "merlin" version = "3.0.0" @@ -5439,18 +5622,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -5473,7 +5656,7 @@ dependencies = [ "hashlink", "lioness", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rand", "rand_chacha 0.3.1", "rand_distr", @@ -5694,9 +5877,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.4" +version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4541eb06dce09c0241ebbaab7102f0a01a0c8994afed2e5d0d66775016e25ac2" +checksum = "3ea4908d4f23254adda3daa60ffef0f1ac7b8c3e9a864cf3cc154b251908a2ef" dependencies = [ "approx", "matrixmultiply", @@ -5789,9 +5972,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ "bytes", "futures", @@ -5817,7 +6000,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cfg-if", "libc", ] @@ -5856,22 +6039,31 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-complex" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] @@ -5903,11 +6095,10 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -5915,9 +6106,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", "libm", @@ -5933,6 +6124,27 @@ dependencies = [ "libc", ] +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "number_prefix" version = "0.4.0" @@ -5983,9 +6195,9 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -6001,9 +6213,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchestra" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356622ffdfe72362a45a1e5e87bb113b8327e596e39b91f11f0ef4395c8da79" +checksum = "92829eef0328a3d1cd22a02c0e51deb92a5362df3e7d21a4e9bdc38934694e66" dependencies = [ "async-trait", "dyn-clonable", @@ -6018,28 +6230,69 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eedb646674596266dc9bb2b5c7eea7c36b32ecc7777eba0d510196972d72c4fd" +checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" dependencies = [ - "expander 2.0.0", - "indexmap 2.2.3", + "expander 2.1.0", + "indexmap 2.2.6", "itertools 0.11.0", "petgraph", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "ordered-float" -version = "1.1.1" +name = "ordered-float" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" +dependencies = [ + "num-traits", +] + +[[package]] +name = "orml-traits" +version = "0.10.0" +source = "git+https://github.com/OpenZeppelin/open-runtime-module-library.git?branch=polkadot-v1.7.0#9a6c2fdcd13bae0d921e5c33e83eabbc89a6a716" +dependencies = [ + "frame-support", + "impl-trait-for-tuples", + "num-traits", + "orml-utilities", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", + "staging-xcm", +] + +[[package]] +name = "orml-utilities" +version = "0.10.0" +source = "git+https://github.com/OpenZeppelin/open-runtime-module-library.git?branch=polkadot-v1.7.0#9a6c2fdcd13bae0d921e5c33e83eabbc89a6a716" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + +[[package]] +name = "overload" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" -dependencies = [ - "num-traits", -] +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" @@ -6242,7 +6495,7 @@ name = "pallet-beefy-mmr" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "binary-merkle-tree", "frame-support", "frame-system", @@ -6443,6 +6696,32 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", ] +[[package]] +name = "pallet-evm" +version = "6.0.0-dev" +source = "git+https://github.com/OpenZeppelin/frontier?branch=polkadot-v1.7.0#8037bf8d7401357d321d837c9b92729519c81e45" +dependencies = [ + "environmental", + "evm", + "fp-account", + "fp-evm", + "frame-benchmarking", + "frame-support", + "frame-system", + "hash-db", + "hex", + "hex-literal 0.4.1", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "rlp", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + [[package]] name = "pallet-fast-unstake" version = "27.0.0" @@ -6923,7 +7202,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -7017,6 +7296,28 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", ] +[[package]] +name = "pallet-transaction-multi-payment" +version = "10.0.3" +source = "git+https://github.com/OpenZeppelin/HydraDX-node?branch=polkadot-v1.7.0#2777b7e231dade815ff2b2d9b751557a74eee41a" +dependencies = [ + "frame-support", + "frame-system", + "hydra-dx-math", + "hydradx-traits", + "orml-traits", + "pallet-evm", + "pallet-transaction-payment", + "pallet-utility", + "parity-scale-codec", + "primitives", + "scale-info", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + [[package]] name = "pallet-transaction-payment" version = "28.0.0" @@ -7247,7 +7548,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-assets", "pallet-aura", @@ -7264,6 +7565,7 @@ dependencies = [ "pallet-session", "pallet-sudo", "pallet-timestamp", + "pallet-transaction-multi-payment", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", @@ -7342,7 +7644,7 @@ dependencies = [ "log", "lz4", "memmap2 0.5.10", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rand", "siphasher", "snap", @@ -7351,9 +7653,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ "arrayvec 0.7.4", "bitvec", @@ -7366,11 +7668,11 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -7407,12 +7709,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.9", + "parking_lot_core 0.9.10", ] [[package]] @@ -7431,15 +7733,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.1", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -7450,9 +7752,9 @@ checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -7495,9 +7797,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" dependencies = [ "memchr", "thiserror", @@ -7506,9 +7808,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" dependencies = [ "pest", "pest_generator", @@ -7516,22 +7818,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" dependencies = [ "once_cell", "pest", @@ -7540,32 +7842,32 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.3", + "indexmap 2.2.6", ] [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -7576,9 +7878,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -7588,12 +7890,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand 2.1.0", "futures-io", ] @@ -7615,9 +7917,9 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platforms" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" [[package]] name = "polkadot-approval-distribution" @@ -7772,7 +8074,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.2.3", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7835,7 +8137,7 @@ dependencies = [ "fatality", "futures", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -7876,7 +8178,7 @@ dependencies = [ "futures-timer", "itertools 0.10.5", "kvdb", - "merlin 3.0.0", + "merlin", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -8082,7 +8384,7 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ "always-assert", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "blake3", "cfg-if", "futures", @@ -8176,7 +8478,7 @@ dependencies = [ "log", "mick-jaeger", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-primitives", "sc-network", @@ -8190,7 +8492,7 @@ name = "polkadot-node-metrics" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "futures", "futures-timer", "log", @@ -8303,7 +8605,7 @@ dependencies = [ "kvdb", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "polkadot-node-jaeger", "polkadot-node-metrics", @@ -8333,7 +8635,7 @@ dependencies = [ "futures", "futures-timer", "orchestra", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8369,7 +8671,7 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ "bitvec", - "hex-literal", + "hex-literal 0.4.1", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", @@ -8479,7 +8781,7 @@ name = "polkadot-runtime-metrics" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", @@ -8548,7 +8850,7 @@ dependencies = [ "frame-system", "frame-system-rpc-runtime-api", "futures", - "hex-literal", + "hex-literal 0.4.1", "is_executable", "kvdb", "kvdb-rocksdb", @@ -8561,7 +8863,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -8664,7 +8966,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.2.3", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8689,39 +8991,39 @@ dependencies = [ [[package]] name = "polkavm-common" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c99f7eee94e7be43ba37eef65ad0ee8cbaf89b7c00001c3f6d2be985cb1817" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" [[package]] name = "polkavm-derive" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79fa916f7962348bd1bb1a65a83401675e6fc86c51a0fdbcf92a3108e58e6125" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" dependencies = [ "polkavm-derive-impl-macro", ] [[package]] name = "polkavm-derive-impl" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c10b2654a8a10a83c260bfb93e97b262cf0017494ab94a65d389e0eda6de6c9c" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" dependencies = [ "polkavm-common", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "polkavm-derive-impl-macro" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -8736,20 +9038,21 @@ dependencies = [ "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "windows-sys 0.48.0", ] [[package]] name = "polling" -version = "3.5.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9" +checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" dependencies = [ "cfg-if", "concurrent-queue", - "pin-project-lite 0.2.13", - "rustix 0.38.31", + "hermit-abi", + "pin-project-lite 0.2.14", + "rustix 0.38.34", "tracing", "windows-sys 0.52.0", ] @@ -8761,19 +9064,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] @@ -8825,11 +9128,21 @@ dependencies = [ "termtree", ] +[[package]] +name = "prettier-please" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22020dfcf177fcc7bf5deaf7440af371400c67c0de14c399938d8ed4fb4645d3" +dependencies = [ + "proc-macro2", + "syn 2.0.66", +] + [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "f28f53e8b192565862cf99343194579a022eb9c7dd3a8d03134734803c7b3125" dependencies = [ "proc-macro2", "syn 1.0.109", @@ -8837,12 +9150,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -8853,11 +9166,28 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", + "impl-rlp", "impl-serde", "scale-info", "uint", ] +[[package]] +name = "primitives" +version = "6.0.2" +source = "git+https://github.com/OpenZeppelin/HydraDX-node?branch=polkadot-v1.7.0#2777b7e231dade815ff2b2d9b751557a74eee41a" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "hex-literal 0.3.4", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", + "static_assertions", +] + [[package]] name = "prioritized-metered-channel" version = "0.6.1" @@ -8884,15 +9214,6 @@ dependencies = [ "toml_edit 0.19.15", ] -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - [[package]] name = "proc-macro-crate" version = "3.1.0" @@ -8934,29 +9255,29 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "thiserror", ] @@ -8968,7 +9289,7 @@ checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus-client-derive-encode", ] @@ -8980,7 +9301,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -8995,12 +9316,12 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.3" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ "bytes", - "prost-derive 0.12.3", + "prost-derive 0.12.6", ] [[package]] @@ -9010,13 +9331,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools 0.10.5", "lazy_static", "log", "multimap", "petgraph", - "prettyplease 0.1.25", + "prettyplease 0.1.11", "prost 0.11.9", "prost-types", "regex", @@ -9040,15 +9361,15 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.12.3" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -9128,9 +9449,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -9187,7 +9508,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.15", ] [[package]] @@ -9217,9 +9538,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -9265,13 +9586,22 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.15", "libredox", "thiserror", ] @@ -9290,22 +9620,22 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -9322,14 +9652,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -9343,13 +9673,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -9360,9 +9690,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "resolv-conf" @@ -9397,7 +9727,7 @@ dependencies = [ "blake2 0.10.6", "common", "fflonk", - "merlin 3.0.0", + "merlin", ] [[package]] @@ -9423,7 +9753,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.12", + "getrandom 0.2.15", "libc", "spin 0.9.8", "untrusted 0.9.0", @@ -9439,6 +9769,28 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rocksdb" version = "0.21.0" @@ -9462,7 +9814,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-asset-rate", "pallet-authority-discovery", @@ -9605,9 +9957,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -9627,7 +9979,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.22", + "semver 1.0.23", ] [[package]] @@ -9669,14 +10021,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", - "linux-raw-sys 0.4.13", + "linux-raw-sys 0.4.14", "windows-sys 0.52.0", ] @@ -9694,9 +10046,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring 0.17.8", @@ -9737,9 +10089,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ruzstd" @@ -9765,9 +10117,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "safe_arch" @@ -9812,7 +10164,7 @@ dependencies = [ "multihash 0.18.1", "multihash-codetable", "parity-scale-codec", - "prost 0.12.3", + "prost 0.12.6", "prost-build", "rand", "sc-client-api", @@ -9869,7 +10221,7 @@ name = "sc-chain-spec" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "docify", "log", "memmap2 0.9.4", @@ -9898,7 +10250,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -9906,7 +10258,7 @@ name = "sc-cli" version = "0.36.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bip39", "chrono", "clap", @@ -9951,7 +10303,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -9982,7 +10334,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-state-db", "schnellru", @@ -10006,7 +10358,7 @@ dependencies = [ "libp2p-identity", "log", "mockall", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-utils", "serde", @@ -10062,7 +10414,7 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-consensus-epochs", @@ -10112,14 +10464,14 @@ name = "sc-consensus-beefy" version = "13.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-network", @@ -10152,7 +10504,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-consensus-beefy", "sc-rpc", "serde", @@ -10180,8 +10532,8 @@ name = "sc-consensus-grandpa" version = "0.19.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "ahash 0.8.9", - "array-bytes 6.2.2", + "ahash 0.8.11", + "array-bytes 6.2.3", "async-trait", "dyn-clone", "finality-grandpa", @@ -10190,7 +10542,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rand", "sc-block-builder", "sc-chain-spec", @@ -10267,7 +10619,7 @@ version = "0.32.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-executor-common", "sc-executor-wasmtime", "schnellru", @@ -10304,7 +10656,7 @@ dependencies = [ "cfg-if", "libc", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rustix 0.36.17", "sc-allocator", "sc-executor-common", @@ -10335,8 +10687,8 @@ name = "sc-keystore" version = "25.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", - "parking_lot 0.12.1", + "array-bytes 6.2.3", + "parking_lot 0.12.3", "serde_json", "sp-application-crypto", "sp-core", @@ -10360,7 +10712,7 @@ dependencies = [ "mixnet", "multiaddr", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-network", "sc-transaction-pool-api", @@ -10378,7 +10730,7 @@ name = "sc-network" version = "0.34.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "asynchronous-codec", @@ -10393,7 +10745,7 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "partial_sort", "pin-project", "rand", @@ -10426,7 +10778,7 @@ dependencies = [ "futures", "libp2p-identity", "log", - "prost 0.12.3", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", @@ -10458,7 +10810,7 @@ name = "sc-network-gossip" version = "0.34.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", "futures", "futures-timer", "libp2p", @@ -10477,13 +10829,13 @@ name = "sc-network-light" version = "0.33.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "futures", "libp2p-identity", "log", "parity-scale-codec", - "prost 0.12.3", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", @@ -10498,7 +10850,7 @@ name = "sc-network-sync" version = "0.33.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "fork-tree", @@ -10508,7 +10860,7 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "prost 0.12.3", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-consensus", @@ -10534,7 +10886,7 @@ name = "sc-network-transactions" version = "0.33.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "futures", "libp2p", "log", @@ -10553,7 +10905,7 @@ name = "sc-offchain" version = "29.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bytes", "fnv", "futures", @@ -10565,7 +10917,7 @@ dependencies = [ "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rand", "sc-client-api", "sc-network", @@ -10600,7 +10952,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -10663,14 +11015,14 @@ name = "sc-rpc-spec-v2" version = "0.34.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "futures", "futures-util", "hex", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-chain-spec", "sc-client-api", "sc-rpc", @@ -10701,7 +11053,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "rand", "sc-chain-spec", @@ -10758,7 +11110,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sp-core", ] @@ -10824,7 +11176,7 @@ dependencies = [ "futures", "libp2p", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "rand", "sc-utils", @@ -10846,7 +11198,7 @@ dependencies = [ "libc", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "regex", "rustc-hash", "sc-client-api", @@ -10860,8 +11212,8 @@ dependencies = [ "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", "thiserror", "tracing", - "tracing-log", - "tracing-subscriber", + "tracing-log 0.1.4", + "tracing-subscriber 0.2.25", ] [[package]] @@ -10872,7 +11224,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -10886,7 +11238,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-transaction-pool-api", "sc-utils", @@ -10928,16 +11280,16 @@ dependencies = [ "futures-timer", "lazy_static", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus", "sp-arithmetic", ] [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "bitvec", "cfg-if", @@ -10949,11 +11301,11 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -10970,31 +11322,15 @@ dependencies = [ [[package]] name = "schnellru" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", "cfg-if", "hashbrown 0.13.2", ] -[[package]] -name = "schnorrkel" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "merlin 2.0.1", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle 2.5.0", - "zeroize", -] - [[package]] name = "schnorrkel" version = "0.10.2" @@ -11004,7 +11340,7 @@ dependencies = [ "arrayref", "arrayvec 0.7.4", "curve25519-dalek-ng", - "merlin 3.0.0", + "merlin", "rand_core 0.6.4", "sha2 0.9.9", "subtle-ng", @@ -11022,7 +11358,7 @@ dependencies = [ "arrayvec 0.7.4", "curve25519-dalek 4.1.2", "getrandom_or_panic", - "merlin 3.0.0", + "merlin", "rand_core 0.6.4", "serde_bytes", "sha2 0.10.8", @@ -11104,11 +11440,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "core-foundation", "core-foundation-sys", "libc", @@ -11117,9 +11453,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -11136,9 +11472,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] @@ -11151,9 +11487,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] @@ -11169,20 +11505,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", @@ -11191,9 +11527,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" dependencies = [ "serde", ] @@ -11208,7 +11544,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -11222,18 +11558,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha2" version = "0.9.9" @@ -11244,7 +11568,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -11285,9 +11609,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -11364,9 +11688,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smol" @@ -11397,7 +11721,7 @@ dependencies = [ "base64 0.21.7", "bip39", "blake2-rfc", - "bs58 0.5.0", + "bs58 0.5.1", "chacha20", "crossbeam-queue", "derive_more", @@ -11407,12 +11731,12 @@ dependencies = [ "fnv", "futures-lite 1.13.0", "futures-util", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "hmac 0.12.1", "itertools 0.11.0", "libsecp256k1", - "merlin 3.0.0", + "merlin", "no-std-net", "nom", "num-bigint", @@ -11456,13 +11780,13 @@ dependencies = [ "futures-channel", "futures-lite 1.13.0", "futures-util", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "itertools 0.11.0", "log", "lru 0.11.1", "no-std-net", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "rand", "rand_chacha 0.3.1", @@ -11510,12 +11834,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -11563,11 +11887,11 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe dependencies = [ "Inflector", "blake2 0.10.6", - "expander 2.0.0", + "expander 2.1.0", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -11647,7 +11971,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "schnellru", "sp-api", "sp-consensus", @@ -11763,13 +12087,13 @@ name = "sp-core" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bandersnatch_vrfs", "bip39", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", - "bs58 0.5.0", + "bs58 0.5.1", "dyn-clonable", "ed25519-zebra 3.1.0", "futures", @@ -11779,9 +12103,9 @@ dependencies = [ "itertools 0.10.5", "libsecp256k1", "log", - "merlin 3.0.0", + "merlin", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "paste", "primitive-types", "rand", @@ -11807,7 +12131,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -11822,7 +12146,6 @@ dependencies = [ "ark-ed-on-bls12-381-bandersnatch-ext", "ark-scale", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] @@ -11845,7 +12168,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe dependencies = [ "quote", "sp-crypto-hashing", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -11854,7 +12177,7 @@ version = "10.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] @@ -11864,17 +12187,17 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -11891,11 +12214,10 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] @@ -11965,7 +12287,7 @@ version = "0.34.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sp-core", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", "thiserror", @@ -12110,7 +12432,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -12132,24 +12454,24 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ "Inflector", - "expander 2.0.0", + "expander 2.1.0", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" dependencies = [ "Inflector", - "expander 2.0.0", + "expander 2.1.0", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -12189,7 +12511,7 @@ dependencies = [ "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rand", "smallvec", "sp-core", @@ -12235,7 +12557,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" [[package]] name = "sp-storage" @@ -12253,14 +12575,13 @@ dependencies = [ [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] @@ -12285,19 +12606,18 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", "tracing", "tracing-core", - "tracing-subscriber", + "tracing-subscriber 0.2.25", ] [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" dependencies = [ "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "tracing", "tracing-core", - "tracing-subscriber", + "tracing-subscriber 0.3.18", ] [[package]] @@ -12329,13 +12649,13 @@ name = "sp-trie" version = "29.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.11", "hash-db", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rand", "scale-info", "schnellru", @@ -12373,7 +12693,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -12392,14 +12712,11 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#ca382f32033d8350d49934b30680d8c30dd9bdfc" +source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" dependencies = [ - "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "wasmtime", ] [[package]] @@ -12452,9 +12769,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.46.0" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1114ee5900b8569bbc8b1a014a942f937b752af4b44f4607430b5f86cedaac0" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" dependencies = [ "Inflector", "num-format", @@ -12490,7 +12807,7 @@ name = "staging-xcm" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bounded-collections", "derivative", "environmental", @@ -12595,9 +12912,9 @@ dependencies = [ [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -12610,9 +12927,9 @@ dependencies = [ [[package]] name = "strum" -version = "0.25.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" [[package]] name = "strum_macros" @@ -12620,7 +12937,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -12629,26 +12946,26 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "substrate-bip39" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" +checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" dependencies = [ "hmac 0.11.0", "pbkdf2 0.8.0", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "sha2 0.9.9", "zeroize", ] @@ -12705,10 +13022,7 @@ dependencies = [ [[package]] name = "substrate-runtime-fuzzer" version = "0.1.0" -source = "git+https://github.com/srlabs/substrate-runtime-fuzzer.git#5cd430ce672957d02e002a9751ac232b1666731b" -dependencies = [ - "parity-scale-codec", -] +source = "git+https://github.com/srlabs/substrate-runtime-fuzzer.git#ecfa4d8cdee3b0e6c55d4367f03acbb2543e76c7" [[package]] name = "substrate-state-trie-migration-rpc" @@ -12740,7 +13054,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum 0.24.1", "tempfile", - "toml 0.8.10", + "toml 0.8.13", "walkdir", "wasm-opt", ] @@ -12776,9 +13090,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.50" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", @@ -12826,19 +13140,19 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.13" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "rustix 0.38.31", + "fastrand 2.1.0", + "rustix 0.38.34", "windows-sys 0.52.0", ] @@ -12879,7 +13193,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.34", "windows-sys 0.48.0", ] @@ -12891,9 +13205,9 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] @@ -12915,18 +13229,18 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -12937,9 +13251,9 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -12990,9 +13304,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -13011,9 +13325,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -13045,19 +13359,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", "libc", "mio", "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite 0.2.13", + "parking_lot 0.12.3", + "pin-project-lite 0.2.14", "signal-hook-registry", - "socket2 0.5.5", + "socket2 0.5.7", "tokio-macros", "windows-sys 0.48.0", ] @@ -13070,7 +13384,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -13090,35 +13404,34 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.10", + "rustls 0.21.12", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tokio", "tokio-util", ] [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tokio", - "tracing", ] [[package]] @@ -13132,21 +13445,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.10" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" +checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.6", + "toml_edit 0.22.13", ] [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" dependencies = [ "serde", ] @@ -13157,18 +13470,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.3", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.6", "toml_datetime", "winnow 0.5.40", ] @@ -13179,22 +13481,22 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.6", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.6" +version = "0.22.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" +checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.2", + "winnow 0.6.8", ] [[package]] @@ -13206,7 +13508,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", "tracing", @@ -13218,14 +13520,14 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "bytes", "futures-core", "futures-util", "http", "http-body", "http-range-header", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", ] @@ -13249,7 +13551,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tracing-attributes", "tracing-core", ] @@ -13262,7 +13564,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -13301,11 +13603,11 @@ name = "tracing-gum-proc-macro" version = "5.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe3145ab9bd26ceb5a26baf2a64105b0035a5a6" dependencies = [ - "expander 2.0.0", + "expander 2.1.0", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -13319,6 +13621,17 @@ dependencies = [ "tracing-core", ] +[[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-serde" version = "0.1.3" @@ -13338,7 +13651,7 @@ dependencies = [ "ansi_term", "chrono", "lazy_static", - "matchers", + "matchers 0.0.1", "parking_lot 0.11.2", "regex", "serde", @@ -13348,10 +13661,28 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log", + "tracing-log 0.1.4", "tracing-serde", ] +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers 0.1.0", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] + [[package]] name = "trie-db" version = "0.28.0" @@ -13411,7 +13742,7 @@ dependencies = [ "ipconfig", "lazy_static", "lru-cache", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "resolv-conf", "smallvec", "thiserror", @@ -13527,9 +13858,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "unicode-xid" @@ -13638,15 +13969,15 @@ dependencies = [ [[package]] name = "waker-fn" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -13684,9 +14015,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -13694,24 +14025,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -13721,9 +14052,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13731,22 +14062,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-instrument" @@ -13759,9 +14090,9 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.116.0" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" dependencies = [ "anyhow", "libc", @@ -13855,9 +14186,9 @@ dependencies = [ [[package]] name = "wasmparser-nostd" -version = "0.100.1" +version = "0.100.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" dependencies = [ "indexmap-nostd", ] @@ -14059,9 +14390,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -14101,7 +14432,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-asset-rate", "pallet-authority-discovery", @@ -14217,14 +14548,14 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.31", + "rustix 0.38.34", ] [[package]] name = "wide" -version = "0.7.15" +version = "0.7.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89beec544f246e679fc25490e3f8e08003bc4bf612068f325120dad4cea02c1c" +checksum = "cd8dc749a1b03f3c255a3064a4f5c0ee5ed09b7c6bc6d4525d31f779cd74d7fc" dependencies = [ "bytemuck", "safe_arch", @@ -14232,9 +14563,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -14254,11 +14585,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -14292,7 +14623,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.5", ] [[package]] @@ -14319,7 +14650,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.5", ] [[package]] @@ -14354,17 +14685,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -14381,9 +14713,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -14399,9 +14731,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -14417,9 +14749,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -14435,9 +14773,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -14453,9 +14791,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -14471,9 +14809,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -14489,9 +14827,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" @@ -14504,9 +14842,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.2" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178" +checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" dependencies = [ "memchr", ] @@ -14579,7 +14917,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -14591,7 +14929,7 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rand", "static_assertions", ] @@ -14607,29 +14945,29 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -14642,7 +14980,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.66", ] [[package]] @@ -14691,9 +15029,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.10+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" dependencies = [ "cc", "pkg-config", diff --git a/evm-template/Cargo.toml b/evm-template/Cargo.toml index 81f3cf71..48235ffe 100644 --- a/evm-template/Cargo.toml +++ b/evm-template/Cargo.toml @@ -131,6 +131,9 @@ parachains-common = { git = "https://github.com/paritytech/polkadot-sdk", defaul # Frontier fp-account = { git = "https://github.com/OpenZeppelin/frontier", branch = "polkadot-v1.7.0", default-features = false, features = [ "serde" ] } +# HydraDX +pallet-transaction-multi-payment = { git = "https://github.com/OpenZeppelin/HydraDX-node", branch = "polkadot-v1.7.0", default-features = false } + # Fuzzer substrate-runtime-fuzzer = { git = "https://github.com/srlabs/substrate-runtime-fuzzer.git", default-features = false } ziggy = { version = "0.8", default-features = false } diff --git a/evm-template/runtime/Cargo.toml b/evm-template/runtime/Cargo.toml index ab08327c..857bb355 100644 --- a/evm-template/runtime/Cargo.toml +++ b/evm-template/runtime/Cargo.toml @@ -85,6 +85,9 @@ parachains-common = { workspace = true } # Frontier fp-account = { workspace = true } +# HydraDX +pallet-transaction-multi-payment = { workspace = true } + [dev-dependencies] sp-io = { workspace = true } @@ -128,6 +131,7 @@ std = [ "pallet-timestamp/std", "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", + "pallet-transaction-multi-payment/std", "pallet-treasury/std", "pallet-utility/std", "pallet-whitelist/std", @@ -217,6 +221,7 @@ try-runtime = [ "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", "pallet-transaction-payment/try-runtime", + "pallet-transaction-multi-payment/try-runtime", "pallet-treasury/try-runtime", "pallet-utility/try-runtime", "pallet-whitelist/try-runtime", From 707e153350dfa14669a31ff99e9fa9f2cb34a0bb Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Sun, 26 May 2024 02:25:56 -0400 Subject: [PATCH 02/17] init tx multi config not done yet --- .../rustc-ice-2024-05-26T06_23_44-2088.txt | 720 ++++++++++++++++ evm-template/runtime/src/lib.rs | 17 + .../rustc-ice-2024-05-26T06_23_59-2106.txt | 785 ++++++++++++++++++ 3 files changed, 1522 insertions(+) create mode 100644 evm-template/runtime/rustc-ice-2024-05-26T06_23_44-2088.txt create mode 100644 evm-template/rustc-ice-2024-05-26T06_23_59-2106.txt diff --git a/evm-template/runtime/rustc-ice-2024-05-26T06_23_44-2088.txt b/evm-template/runtime/rustc-ice-2024-05-26T06_23_44-2088.txt new file mode 100644 index 00000000..97519b74 --- /dev/null +++ b/evm-template/runtime/rustc-ice-2024-05-26T06_23_44-2088.txt @@ -0,0 +1,720 @@ +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x1195df209 - ::lower_pat + 18: 0x118fe00d7 - ::lower_pattern + 19: 0x118fe0b9b - ::check_match + 20: 0x118fe5e7c - ::visit_expr + 21: 0x118fe5bca - ::visit_expr + 22: 0x118fe5ea3 - ::visit_expr + 23: 0x118fe5bca - ::visit_expr + 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11997758c - >::call_once + 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x119828a0c - >::call_once + 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1198f7bfc - >::call_once + 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x118aafc5d - ::par_body_owners::::{closure#0} + 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11997e8f9 - >::call_once + 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x1181fa559 - ::enter::> + 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +rustc version: 1.78.0-nightly (bccb9bbb4 2024-02-16) +platform: x86_64-apple-darwin + +query stack during panic: +#0 [check_match] match-checking `::clone` +#1 [mir_built] building MIR for `::clone` +#2 [check_unsafety] unsafety-checking `::clone` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x1195df209 - ::lower_pat + 18: 0x1195dedf4 - ::lower_pat + 19: 0x118fe00d7 - ::lower_pattern + 20: 0x118fe0b9b - ::check_match + 21: 0x118fe5e7c - ::visit_expr + 22: 0x118fe5bca - ::visit_expr + 23: 0x118fe5ea3 - ::visit_expr + 24: 0x118fe5bca - ::visit_expr + 25: 0x118fe5ea3 - ::visit_expr + 26: 0x118fe5bca - ::visit_expr + 27: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 28: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 29: 0x11997758c - >::call_once + 30: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 31: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 32: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 33: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 34: 0x119828a0c - >::call_once + 35: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 36: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 37: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 38: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 39: 0x1198f7bfc - >::call_once + 40: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 41: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 42: 0x118aafc5d - ::par_body_owners::::{closure#0} + 43: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 44: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 45: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 46: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 47: 0x11997e8f9 - >::call_once + 48: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 49: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 50: 0x1181fa559 - ::enter::> + 51: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 52: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 53: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 54: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 55: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 56: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::eq` +#1 [mir_built] building MIR for `::eq` +#2 [check_unsafety] unsafety-checking `::eq` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x118fe00d7 - ::lower_pattern + 18: 0x118fe0b9b - ::check_match + 19: 0x118fe5e7c - ::visit_expr + 20: 0x118fe5bca - ::visit_expr + 21: 0x118fe5ea3 - ::visit_expr + 22: 0x118fe5bca - ::visit_expr + 23: 0x118fe5ea3 - ::visit_expr + 24: 0x118fe5bca - ::visit_expr + 25: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 26: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 27: 0x11997758c - >::call_once + 28: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 29: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 30: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 31: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 32: 0x119828a0c - >::call_once + 33: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 34: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 35: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 36: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 37: 0x1198f7bfc - >::call_once + 38: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 39: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 40: 0x118aafc5d - ::par_body_owners::::{closure#0} + 41: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 42: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 43: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 44: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 45: 0x11997e8f9 - >::call_once + 46: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 47: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 48: 0x1181fa559 - ::enter::> + 49: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 50: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 51: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 52: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 53: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 54: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `_::::size_hint` +#1 [mir_built] building MIR for `_::::size_hint` +#2 [check_unsafety] unsafety-checking `_::::size_hint` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x118fe00d7 - ::lower_pattern + 18: 0x118fe0b9b - ::check_match + 19: 0x118fe5e7c - ::visit_expr + 20: 0x118fe5bca - ::visit_expr + 21: 0x118fe5ea3 - ::visit_expr + 22: 0x118fe5bca - ::visit_expr + 23: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 24: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 25: 0x11997758c - >::call_once + 26: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 27: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 28: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 29: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 30: 0x119828a0c - >::call_once + 31: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 32: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 33: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 34: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 35: 0x1198f7bfc - >::call_once + 36: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 37: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 38: 0x118aafc5d - ::par_body_owners::::{closure#0} + 39: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 40: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 41: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 42: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 43: 0x11997e8f9 - >::call_once + 44: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 45: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 46: 0x1181fa559 - ::enter::> + 47: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 48: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 49: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 50: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 51: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 52: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `_::::encode_to` +#1 [mir_built] building MIR for `_::::encode_to` +#2 [check_unsafety] unsafety-checking `_::::encode_to` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x1195df209 - ::lower_pat + 18: 0x118fe00d7 - ::lower_pattern + 19: 0x118fe0b9b - ::check_match + 20: 0x118fe5e7c - ::visit_expr + 21: 0x118fe5bca - ::visit_expr + 22: 0x118fe5ea3 - ::visit_expr + 23: 0x118fe5bca - ::visit_expr + 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11997758c - >::call_once + 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x119828a0c - >::call_once + 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1198f7bfc - >::call_once + 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x118aafc5d - ::par_body_owners::::{closure#0} + 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11997e8f9 - >::call_once + 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x1181fa559 - ::enter::> + 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::get_dispatch_info` +#1 [mir_built] building MIR for `::get_dispatch_info` +#2 [check_unsafety] unsafety-checking `::get_dispatch_info` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x1195df209 - ::lower_pat + 18: 0x118fe00d7 - ::lower_pattern + 19: 0x118fe0b9b - ::check_match + 20: 0x118fe5e7c - ::visit_expr + 21: 0x118fe5bca - ::visit_expr + 22: 0x118fe5ea3 - ::visit_expr + 23: 0x118fe5bca - ::visit_expr + 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11997758c - >::call_once + 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x119828a0c - >::call_once + 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1198f7bfc - >::call_once + 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x118aafc5d - ::par_body_owners::::{closure#0} + 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11997e8f9 - >::call_once + 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x1181fa559 - ::enter::> + 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::is_feeless` +#1 [mir_built] building MIR for `::is_feeless` +#2 [check_unsafety] unsafety-checking `::is_feeless` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x1195df209 - ::lower_pat + 18: 0x118fe00d7 - ::lower_pattern + 19: 0x118fe0b9b - ::check_match + 20: 0x118fe5e7c - ::visit_expr + 21: 0x118fe5bca - ::visit_expr + 22: 0x118fe5ea3 - ::visit_expr + 23: 0x118fe5bca - ::visit_expr + 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11997758c - >::call_once + 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x119828a0c - >::call_once + 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1198f7bfc - >::call_once + 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x118aafc5d - ::par_body_owners::::{closure#0} + 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11997e8f9 - >::call_once + 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x1181fa559 - ::enter::> + 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::get_call_metadata` +#1 [mir_built] building MIR for `::get_call_metadata` +#2 [check_unsafety] unsafety-checking `::get_call_metadata` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x118fe00d7 - ::lower_pattern + 18: 0x118fe0b9b - ::check_match + 19: 0x118fe5e7c - ::visit_expr + 20: 0x118fe5bca - ::visit_expr + 21: 0x118fe5ea3 - ::visit_expr + 22: 0x118fe5bca - ::visit_expr + 23: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 24: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 25: 0x11997758c - >::call_once + 26: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 27: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 28: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 29: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 30: 0x119828a0c - >::call_once + 31: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 32: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 33: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 34: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 35: 0x1198f7bfc - >::call_once + 36: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 37: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 38: 0x118aafc5d - ::par_body_owners::::{closure#0} + 39: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 40: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 41: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 42: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 43: 0x11997e8f9 - >::call_once + 44: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 45: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 46: 0x1181fa559 - ::enter::> + 47: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 48: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 49: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 50: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 51: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 52: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::dispatch_bypass_filter` +#1 [mir_built] building MIR for `::dispatch_bypass_filter` +#2 [check_unsafety] unsafety-checking `::dispatch_bypass_filter` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x1195df209 - ::lower_pat + 18: 0x118fe00d7 - ::lower_pattern + 19: 0x118fe0b9b - ::check_match + 20: 0x118fe5e7c - ::visit_expr + 21: 0x118fe5bca - ::visit_expr + 22: 0x118fe5ea3 - ::visit_expr + 23: 0x118fe5bca - ::visit_expr + 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11997758c - >::call_once + 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x119828a0c - >::call_once + 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1198f7bfc - >::call_once + 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x118aafc5d - ::par_body_owners::::{closure#0} + 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11997e8f9 - >::call_once + 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x1181fa559 - ::enter::> + 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::is_sub_type` +#1 [mir_built] building MIR for `::is_sub_type` +#2 [check_unsafety] unsafety-checking `::is_sub_type` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x1195df209 - ::lower_pat + 18: 0x118fe00d7 - ::lower_pattern + 19: 0x118fe0b9b - ::check_match + 20: 0x118fe5e7c - ::visit_expr + 21: 0x118fe5bca - ::visit_expr + 22: 0x118fe5ea3 - ::visit_expr + 23: 0x118fe5bca - ::visit_expr + 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11997758c - >::call_once + 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x119828a0c - >::call_once + 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1198f7bfc - >::call_once + 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x118aafc5d - ::par_body_owners::::{closure#0} + 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11997e8f9 - >::call_once + 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x1181fa559 - ::enter::> + 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::pre_dispatch` +#1 [mir_built] building MIR for `::pre_dispatch` +#2 [check_unsafety] unsafety-checking `::pre_dispatch` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x118281276 - ::emit_producing_guarantee + 8: 0x118dabfb2 - ::bug:: + 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x118e0202b - >::fold_ty + 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1195dfe43 - ::lower_pat + 17: 0x1195df209 - ::lower_pat + 18: 0x118fe00d7 - ::lower_pattern + 19: 0x118fe0b9b - ::check_match + 20: 0x118fe5e7c - ::visit_expr + 21: 0x118fe5bca - ::visit_expr + 22: 0x118fe5ea3 - ::visit_expr + 23: 0x118fe5bca - ::visit_expr + 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11997758c - >::call_once + 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x119828a0c - >::call_once + 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1198f7bfc - >::call_once + 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x118aafc5d - ::par_body_owners::::{closure#0} + 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11997e8f9 - >::call_once + 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x1181fa559 - ::enter::> + 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::validate_unsigned` +#1 [mir_built] building MIR for `::validate_unsigned` +#2 [check_unsafety] unsafety-checking `::validate_unsigned` +#3 [analysis] running analysis passes on this crate +end of query stack diff --git a/evm-template/runtime/src/lib.rs b/evm-template/runtime/src/lib.rs index 13234f71..60dd27ea 100644 --- a/evm-template/runtime/src/lib.rs +++ b/evm-template/runtime/src/lib.rs @@ -567,6 +567,22 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; } +impl pallet_transaction_multi_payment::Config for Runtime { + type AcceptedCurrencyOrigin = EnsureRoot; + type Currencies = Currencies; + type EvmAssetId = evm::WethAssetId; + type EvmPermit = evm::permit::EvmPermitHandler; + type InspectEvmAccounts = EVMAccounts; + //TODO + type NativeAssetId = NativeAssetId; + type OraclePriceProvider = OraclePriceProvider; + type RouteProvider = Router; + type RuntimeEvent = RuntimeEvent; + type TryCallCurrency<'a> = pallet_transaction_multi_payment::TryCallCurrency; + type WeightInfo = (); + type WeightToFee = WeightToFee; +} + impl pallet_sudo::Config for Runtime { type RuntimeCall = RuntimeCall; type RuntimeEvent = RuntimeEvent; @@ -830,6 +846,7 @@ construct_runtime!( TransactionPayment: pallet_transaction_payment = 11, Assets: pallet_assets = 12, Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event} = 13, + MultiTransactionPayment: pallet_transaction_multi_payment = 14, // Governance Sudo: pallet_sudo = 15, diff --git a/evm-template/rustc-ice-2024-05-26T06_23_59-2106.txt b/evm-template/rustc-ice-2024-05-26T06_23_59-2106.txt new file mode 100644 index 00000000..80d64f35 --- /dev/null +++ b/evm-template/rustc-ice-2024-05-26T06_23_59-2106.txt @@ -0,0 +1,785 @@ +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x112de00d7 - ::lower_pattern + 19: 0x112de0b9b - ::check_match + 20: 0x112de5e7c - ::visit_expr + 21: 0x112de5bca - ::visit_expr + 22: 0x112de5ea3 - ::visit_expr + 23: 0x112de5bca - ::visit_expr + 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11377758c - >::call_once + 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x113628a0c - >::call_once + 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1136f7bfc - >::call_once + 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x1128afc5d - ::par_body_owners::::{closure#0} + 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11377e8f9 - >::call_once + 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x111ffa559 - ::enter::> + 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +rustc version: 1.78.0-nightly (bccb9bbb4 2024-02-16) +platform: x86_64-apple-darwin + +query stack during panic: +#0 [check_match] match-checking `::clone` +#1 [mir_built] building MIR for `::clone` +#2 [check_unsafety] unsafety-checking `::clone` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x1133dedf4 - ::lower_pat + 19: 0x112de00d7 - ::lower_pattern + 20: 0x112de0b9b - ::check_match + 21: 0x112de5e7c - ::visit_expr + 22: 0x112de5bca - ::visit_expr + 23: 0x112de5ea3 - ::visit_expr + 24: 0x112de5bca - ::visit_expr + 25: 0x112de5ea3 - ::visit_expr + 26: 0x112de5bca - ::visit_expr + 27: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 28: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 29: 0x11377758c - >::call_once + 30: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 31: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 32: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 33: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 34: 0x113628a0c - >::call_once + 35: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 36: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 37: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 38: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 39: 0x1136f7bfc - >::call_once + 40: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 41: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 42: 0x1128afc5d - ::par_body_owners::::{closure#0} + 43: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 44: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 45: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 46: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 47: 0x11377e8f9 - >::call_once + 48: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 49: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 50: 0x111ffa559 - ::enter::> + 51: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 52: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 53: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 54: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 55: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 56: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::eq` +#1 [mir_built] building MIR for `::eq` +#2 [check_unsafety] unsafety-checking `::eq` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x112de00d7 - ::lower_pattern + 18: 0x112de0b9b - ::check_match + 19: 0x112de5e7c - ::visit_expr + 20: 0x112de5bca - ::visit_expr + 21: 0x112de5ea3 - ::visit_expr + 22: 0x112de5bca - ::visit_expr + 23: 0x112de5ea3 - ::visit_expr + 24: 0x112de5bca - ::visit_expr + 25: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 26: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 27: 0x11377758c - >::call_once + 28: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 29: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 30: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 31: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 32: 0x113628a0c - >::call_once + 33: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 34: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 35: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 36: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 37: 0x1136f7bfc - >::call_once + 38: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 39: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 40: 0x1128afc5d - ::par_body_owners::::{closure#0} + 41: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 42: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 43: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 44: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 45: 0x11377e8f9 - >::call_once + 46: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 47: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 48: 0x111ffa559 - ::enter::> + 49: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 50: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 51: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 52: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 53: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 54: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `_::::size_hint` +#1 [mir_built] building MIR for `_::::size_hint` +#2 [check_unsafety] unsafety-checking `_::::size_hint` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x112de00d7 - ::lower_pattern + 18: 0x112de0b9b - ::check_match + 19: 0x112de5e7c - ::visit_expr + 20: 0x112de5bca - ::visit_expr + 21: 0x112de5ea3 - ::visit_expr + 22: 0x112de5bca - ::visit_expr + 23: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 24: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 25: 0x11377758c - >::call_once + 26: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 27: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 28: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 29: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 30: 0x113628a0c - >::call_once + 31: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 32: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 33: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 34: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 35: 0x1136f7bfc - >::call_once + 36: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 37: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 38: 0x1128afc5d - ::par_body_owners::::{closure#0} + 39: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 40: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 41: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 42: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 43: 0x11377e8f9 - >::call_once + 44: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 45: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 46: 0x111ffa559 - ::enter::> + 47: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 48: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 49: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 50: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 51: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 52: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `_::::encode_to` +#1 [mir_built] building MIR for `_::::encode_to` +#2 [check_unsafety] unsafety-checking `_::::encode_to` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x112de00d7 - ::lower_pattern + 19: 0x112de0b9b - ::check_match + 20: 0x112de5e7c - ::visit_expr + 21: 0x112de5bca - ::visit_expr + 22: 0x112de5ea3 - ::visit_expr + 23: 0x112de5bca - ::visit_expr + 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11377758c - >::call_once + 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x113628a0c - >::call_once + 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1136f7bfc - >::call_once + 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x1128afc5d - ::par_body_owners::::{closure#0} + 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11377e8f9 - >::call_once + 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x111ffa559 - ::enter::> + 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::fmt` +#1 [mir_built] building MIR for `::fmt` +#2 [check_unsafety] unsafety-checking `::fmt` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x112de00d7 - ::lower_pattern + 19: 0x112de0b9b - ::check_match + 20: 0x112de5e7c - ::visit_expr + 21: 0x112de5bca - ::visit_expr + 22: 0x112de5ea3 - ::visit_expr + 23: 0x112de5bca - ::visit_expr + 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11377758c - >::call_once + 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x113628a0c - >::call_once + 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1136f7bfc - >::call_once + 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x1128afc5d - ::par_body_owners::::{closure#0} + 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11377e8f9 - >::call_once + 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x111ffa559 - ::enter::> + 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::get_dispatch_info` +#1 [mir_built] building MIR for `::get_dispatch_info` +#2 [check_unsafety] unsafety-checking `::get_dispatch_info` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x112de00d7 - ::lower_pattern + 19: 0x112de0b9b - ::check_match + 20: 0x112de5e7c - ::visit_expr + 21: 0x112de5bca - ::visit_expr + 22: 0x112de5ea3 - ::visit_expr + 23: 0x112de5bca - ::visit_expr + 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11377758c - >::call_once + 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x113628a0c - >::call_once + 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1136f7bfc - >::call_once + 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x1128afc5d - ::par_body_owners::::{closure#0} + 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11377e8f9 - >::call_once + 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x111ffa559 - ::enter::> + 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::is_feeless` +#1 [mir_built] building MIR for `::is_feeless` +#2 [check_unsafety] unsafety-checking `::is_feeless` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x112de00d7 - ::lower_pattern + 19: 0x112de0b9b - ::check_match + 20: 0x112de5e7c - ::visit_expr + 21: 0x112de5bca - ::visit_expr + 22: 0x112de5ea3 - ::visit_expr + 23: 0x112de5bca - ::visit_expr + 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11377758c - >::call_once + 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x113628a0c - >::call_once + 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1136f7bfc - >::call_once + 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x1128afc5d - ::par_body_owners::::{closure#0} + 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11377e8f9 - >::call_once + 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x111ffa559 - ::enter::> + 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::get_call_metadata` +#1 [mir_built] building MIR for `::get_call_metadata` +#2 [check_unsafety] unsafety-checking `::get_call_metadata` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x112de00d7 - ::lower_pattern + 18: 0x112de0b9b - ::check_match + 19: 0x112de5e7c - ::visit_expr + 20: 0x112de5bca - ::visit_expr + 21: 0x112de5ea3 - ::visit_expr + 22: 0x112de5bca - ::visit_expr + 23: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 24: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 25: 0x11377758c - >::call_once + 26: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 27: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 28: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 29: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 30: 0x113628a0c - >::call_once + 31: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 32: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 33: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 34: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 35: 0x1136f7bfc - >::call_once + 36: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 37: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 38: 0x1128afc5d - ::par_body_owners::::{closure#0} + 39: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 40: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 41: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 42: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 43: 0x11377e8f9 - >::call_once + 44: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 45: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 46: 0x111ffa559 - ::enter::> + 47: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 48: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 49: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 50: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 51: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 52: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::dispatch_bypass_filter` +#1 [mir_built] building MIR for `::dispatch_bypass_filter` +#2 [check_unsafety] unsafety-checking `::dispatch_bypass_filter` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x112de00d7 - ::lower_pattern + 19: 0x112de0b9b - ::check_match + 20: 0x112de5e7c - ::visit_expr + 21: 0x112de5bca - ::visit_expr + 22: 0x112de5ea3 - ::visit_expr + 23: 0x112de5bca - ::visit_expr + 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11377758c - >::call_once + 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x113628a0c - >::call_once + 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1136f7bfc - >::call_once + 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x1128afc5d - ::par_body_owners::::{closure#0} + 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11377e8f9 - >::call_once + 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x111ffa559 - ::enter::> + 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::is_sub_type` +#1 [mir_built] building MIR for `::is_sub_type` +#2 [check_unsafety] unsafety-checking `::is_sub_type` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x112de00d7 - ::lower_pattern + 19: 0x112de0b9b - ::check_match + 20: 0x112de5e7c - ::visit_expr + 21: 0x112de5bca - ::visit_expr + 22: 0x112de5ea3 - ::visit_expr + 23: 0x112de5bca - ::visit_expr + 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11377758c - >::call_once + 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x113628a0c - >::call_once + 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1136f7bfc - >::call_once + 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x1128afc5d - ::par_body_owners::::{closure#0} + 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11377e8f9 - >::call_once + 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x111ffa559 - ::enter::> + 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::pre_dispatch` +#1 [mir_built] building MIR for `::pre_dispatch` +#2 [check_unsafety] unsafety-checking `::pre_dispatch` +#3 [analysis] running analysis passes on this crate +end of query stack +thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: +Box +stack backtrace: + 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c + 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 + 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} + 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 + 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} + 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> + 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: + 7: 0x112081276 - ::emit_producing_guarantee + 8: 0x112babfb2 - ::bug:: + 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} + 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} + 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> + 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt + 13: 0x112c0202b - >::fold_ty + 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} + 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter + 16: 0x1133dfe43 - ::lower_pat + 17: 0x1133df209 - ::lower_pat + 18: 0x112de00d7 - ::lower_pattern + 19: 0x112de0b9b - ::check_match + 20: 0x112de5e7c - ::visit_expr + 21: 0x112de5bca - ::visit_expr + 22: 0x112de5ea3 - ::visit_expr + 23: 0x112de5bca - ::visit_expr + 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match + 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 26: 0x11377758c - >::call_once + 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace + 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built + 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 31: 0x113628a0c - >::call_once + 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace + 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety + 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 36: 0x1136f7bfc - >::call_once + 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace + 39: 0x1128afc5d - ::par_body_owners::::{closure#0} + 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> + 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> + 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis + 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> + 44: 0x11377e8f9 - >::call_once + 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> + 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace + 47: 0x111ffa559 - ::enter::> + 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> + 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> + 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 + 53: 0x7ff80170018b - __pthread_start + + +query stack during panic: +#0 [check_match] match-checking `::validate_unsigned` +#1 [mir_built] building MIR for `::validate_unsigned` +#2 [check_unsafety] unsafety-checking `::validate_unsigned` +#3 [analysis] running analysis passes on this crate +end of query stack From 79564b337262e23d5010a29178d971ea6cd1493a Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Sun, 26 May 2024 02:26:32 -0400 Subject: [PATCH 03/17] fix --- .../rustc-ice-2024-05-26T06_23_44-2088.txt | 720 ---------------- .../rustc-ice-2024-05-26T06_23_59-2106.txt | 785 ------------------ 2 files changed, 1505 deletions(-) delete mode 100644 evm-template/runtime/rustc-ice-2024-05-26T06_23_44-2088.txt delete mode 100644 evm-template/rustc-ice-2024-05-26T06_23_59-2106.txt diff --git a/evm-template/runtime/rustc-ice-2024-05-26T06_23_44-2088.txt b/evm-template/runtime/rustc-ice-2024-05-26T06_23_44-2088.txt deleted file mode 100644 index 97519b74..00000000 --- a/evm-template/runtime/rustc-ice-2024-05-26T06_23_44-2088.txt +++ /dev/null @@ -1,720 +0,0 @@ -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x1195df209 - ::lower_pat - 18: 0x118fe00d7 - ::lower_pattern - 19: 0x118fe0b9b - ::check_match - 20: 0x118fe5e7c - ::visit_expr - 21: 0x118fe5bca - ::visit_expr - 22: 0x118fe5ea3 - ::visit_expr - 23: 0x118fe5bca - ::visit_expr - 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11997758c - >::call_once - 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x119828a0c - >::call_once - 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1198f7bfc - >::call_once - 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x118aafc5d - ::par_body_owners::::{closure#0} - 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11997e8f9 - >::call_once - 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x1181fa559 - ::enter::> - 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -rustc version: 1.78.0-nightly (bccb9bbb4 2024-02-16) -platform: x86_64-apple-darwin - -query stack during panic: -#0 [check_match] match-checking `::clone` -#1 [mir_built] building MIR for `::clone` -#2 [check_unsafety] unsafety-checking `::clone` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x1195df209 - ::lower_pat - 18: 0x1195dedf4 - ::lower_pat - 19: 0x118fe00d7 - ::lower_pattern - 20: 0x118fe0b9b - ::check_match - 21: 0x118fe5e7c - ::visit_expr - 22: 0x118fe5bca - ::visit_expr - 23: 0x118fe5ea3 - ::visit_expr - 24: 0x118fe5bca - ::visit_expr - 25: 0x118fe5ea3 - ::visit_expr - 26: 0x118fe5bca - ::visit_expr - 27: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 28: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 29: 0x11997758c - >::call_once - 30: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 31: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 32: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 33: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 34: 0x119828a0c - >::call_once - 35: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 36: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 37: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 38: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 39: 0x1198f7bfc - >::call_once - 40: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 41: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 42: 0x118aafc5d - ::par_body_owners::::{closure#0} - 43: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 44: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 45: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 46: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 47: 0x11997e8f9 - >::call_once - 48: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 49: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 50: 0x1181fa559 - ::enter::> - 51: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 52: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 53: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 54: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 55: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 56: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::eq` -#1 [mir_built] building MIR for `::eq` -#2 [check_unsafety] unsafety-checking `::eq` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x118fe00d7 - ::lower_pattern - 18: 0x118fe0b9b - ::check_match - 19: 0x118fe5e7c - ::visit_expr - 20: 0x118fe5bca - ::visit_expr - 21: 0x118fe5ea3 - ::visit_expr - 22: 0x118fe5bca - ::visit_expr - 23: 0x118fe5ea3 - ::visit_expr - 24: 0x118fe5bca - ::visit_expr - 25: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 26: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 27: 0x11997758c - >::call_once - 28: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 29: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 30: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 31: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 32: 0x119828a0c - >::call_once - 33: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 34: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 35: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 36: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 37: 0x1198f7bfc - >::call_once - 38: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 39: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 40: 0x118aafc5d - ::par_body_owners::::{closure#0} - 41: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 42: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 43: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 44: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 45: 0x11997e8f9 - >::call_once - 46: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 47: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 48: 0x1181fa559 - ::enter::> - 49: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 50: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 51: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 52: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 53: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 54: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `_::::size_hint` -#1 [mir_built] building MIR for `_::::size_hint` -#2 [check_unsafety] unsafety-checking `_::::size_hint` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x118fe00d7 - ::lower_pattern - 18: 0x118fe0b9b - ::check_match - 19: 0x118fe5e7c - ::visit_expr - 20: 0x118fe5bca - ::visit_expr - 21: 0x118fe5ea3 - ::visit_expr - 22: 0x118fe5bca - ::visit_expr - 23: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 24: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 25: 0x11997758c - >::call_once - 26: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 27: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 28: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 29: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 30: 0x119828a0c - >::call_once - 31: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 32: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 33: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 34: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 35: 0x1198f7bfc - >::call_once - 36: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 37: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 38: 0x118aafc5d - ::par_body_owners::::{closure#0} - 39: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 40: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 41: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 42: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 43: 0x11997e8f9 - >::call_once - 44: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 45: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 46: 0x1181fa559 - ::enter::> - 47: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 48: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 49: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 50: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 51: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 52: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `_::::encode_to` -#1 [mir_built] building MIR for `_::::encode_to` -#2 [check_unsafety] unsafety-checking `_::::encode_to` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x1195df209 - ::lower_pat - 18: 0x118fe00d7 - ::lower_pattern - 19: 0x118fe0b9b - ::check_match - 20: 0x118fe5e7c - ::visit_expr - 21: 0x118fe5bca - ::visit_expr - 22: 0x118fe5ea3 - ::visit_expr - 23: 0x118fe5bca - ::visit_expr - 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11997758c - >::call_once - 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x119828a0c - >::call_once - 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1198f7bfc - >::call_once - 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x118aafc5d - ::par_body_owners::::{closure#0} - 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11997e8f9 - >::call_once - 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x1181fa559 - ::enter::> - 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::get_dispatch_info` -#1 [mir_built] building MIR for `::get_dispatch_info` -#2 [check_unsafety] unsafety-checking `::get_dispatch_info` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x1195df209 - ::lower_pat - 18: 0x118fe00d7 - ::lower_pattern - 19: 0x118fe0b9b - ::check_match - 20: 0x118fe5e7c - ::visit_expr - 21: 0x118fe5bca - ::visit_expr - 22: 0x118fe5ea3 - ::visit_expr - 23: 0x118fe5bca - ::visit_expr - 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11997758c - >::call_once - 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x119828a0c - >::call_once - 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1198f7bfc - >::call_once - 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x118aafc5d - ::par_body_owners::::{closure#0} - 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11997e8f9 - >::call_once - 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x1181fa559 - ::enter::> - 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::is_feeless` -#1 [mir_built] building MIR for `::is_feeless` -#2 [check_unsafety] unsafety-checking `::is_feeless` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x1195df209 - ::lower_pat - 18: 0x118fe00d7 - ::lower_pattern - 19: 0x118fe0b9b - ::check_match - 20: 0x118fe5e7c - ::visit_expr - 21: 0x118fe5bca - ::visit_expr - 22: 0x118fe5ea3 - ::visit_expr - 23: 0x118fe5bca - ::visit_expr - 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11997758c - >::call_once - 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x119828a0c - >::call_once - 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1198f7bfc - >::call_once - 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x118aafc5d - ::par_body_owners::::{closure#0} - 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11997e8f9 - >::call_once - 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x1181fa559 - ::enter::> - 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::get_call_metadata` -#1 [mir_built] building MIR for `::get_call_metadata` -#2 [check_unsafety] unsafety-checking `::get_call_metadata` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x118fe00d7 - ::lower_pattern - 18: 0x118fe0b9b - ::check_match - 19: 0x118fe5e7c - ::visit_expr - 20: 0x118fe5bca - ::visit_expr - 21: 0x118fe5ea3 - ::visit_expr - 22: 0x118fe5bca - ::visit_expr - 23: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 24: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 25: 0x11997758c - >::call_once - 26: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 27: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 28: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 29: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 30: 0x119828a0c - >::call_once - 31: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 32: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 33: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 34: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 35: 0x1198f7bfc - >::call_once - 36: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 37: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 38: 0x118aafc5d - ::par_body_owners::::{closure#0} - 39: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 40: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 41: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 42: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 43: 0x11997e8f9 - >::call_once - 44: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 45: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 46: 0x1181fa559 - ::enter::> - 47: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 48: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 49: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 50: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 51: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 52: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::dispatch_bypass_filter` -#1 [mir_built] building MIR for `::dispatch_bypass_filter` -#2 [check_unsafety] unsafety-checking `::dispatch_bypass_filter` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x1195df209 - ::lower_pat - 18: 0x118fe00d7 - ::lower_pattern - 19: 0x118fe0b9b - ::check_match - 20: 0x118fe5e7c - ::visit_expr - 21: 0x118fe5bca - ::visit_expr - 22: 0x118fe5ea3 - ::visit_expr - 23: 0x118fe5bca - ::visit_expr - 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11997758c - >::call_once - 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x119828a0c - >::call_once - 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1198f7bfc - >::call_once - 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x118aafc5d - ::par_body_owners::::{closure#0} - 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11997e8f9 - >::call_once - 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x1181fa559 - ::enter::> - 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::is_sub_type` -#1 [mir_built] building MIR for `::is_sub_type` -#2 [check_unsafety] unsafety-checking `::is_sub_type` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x1195df209 - ::lower_pat - 18: 0x118fe00d7 - ::lower_pattern - 19: 0x118fe0b9b - ::check_match - 20: 0x118fe5e7c - ::visit_expr - 21: 0x118fe5bca - ::visit_expr - 22: 0x118fe5ea3 - ::visit_expr - 23: 0x118fe5bca - ::visit_expr - 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11997758c - >::call_once - 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x119828a0c - >::call_once - 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1198f7bfc - >::call_once - 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x118aafc5d - ::par_body_owners::::{closure#0} - 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11997e8f9 - >::call_once - 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x1181fa559 - ::enter::> - 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::pre_dispatch` -#1 [mir_built] building MIR for `::pre_dispatch` -#2 [check_unsafety] unsafety-checking `::pre_dispatch` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x10e564137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x10e564085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11821ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10e57e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1182983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x118297fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x11cc586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x118281276 - ::emit_producing_guarantee - 8: 0x118dabfb2 - ::bug:: - 9: 0x118e05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x118e02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x118e02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x11cd08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x118e0202b - >::fold_ty - 14: 0x1195de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1195e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1195dfe43 - ::lower_pat - 17: 0x1195df209 - ::lower_pat - 18: 0x118fe00d7 - ::lower_pattern - 19: 0x118fe0b9b - ::check_match - 20: 0x118fe5e7c - ::visit_expr - 21: 0x118fe5bca - ::visit_expr - 22: 0x118fe5ea3 - ::visit_expr - 23: 0x118fe5bca - ::visit_expr - 24: 0x118fdf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1197a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11997758c - >::call_once - 27: 0x11975179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11982d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x118f49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1197ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x119828a0c - >::call_once - 32: 0x11975a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1198bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x11900a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1197a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1198f7bfc - >::call_once - 37: 0x11974a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x119981baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x118aafc5d - ::par_body_owners::::{closure#0} - 40: 0x118a6e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x118ad9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x118aca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1197aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11997e8f9 - >::call_once - 45: 0x1196ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1198becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x1181fa559 - ::enter::> - 48: 0x1181d1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x1181f97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x118203809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x1181c86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x10e5870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::validate_unsigned` -#1 [mir_built] building MIR for `::validate_unsigned` -#2 [check_unsafety] unsafety-checking `::validate_unsigned` -#3 [analysis] running analysis passes on this crate -end of query stack diff --git a/evm-template/rustc-ice-2024-05-26T06_23_59-2106.txt b/evm-template/rustc-ice-2024-05-26T06_23_59-2106.txt deleted file mode 100644 index 80d64f35..00000000 --- a/evm-template/rustc-ice-2024-05-26T06_23_59-2106.txt +++ /dev/null @@ -1,785 +0,0 @@ -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x112de00d7 - ::lower_pattern - 19: 0x112de0b9b - ::check_match - 20: 0x112de5e7c - ::visit_expr - 21: 0x112de5bca - ::visit_expr - 22: 0x112de5ea3 - ::visit_expr - 23: 0x112de5bca - ::visit_expr - 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11377758c - >::call_once - 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x113628a0c - >::call_once - 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1136f7bfc - >::call_once - 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x1128afc5d - ::par_body_owners::::{closure#0} - 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11377e8f9 - >::call_once - 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x111ffa559 - ::enter::> - 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -rustc version: 1.78.0-nightly (bccb9bbb4 2024-02-16) -platform: x86_64-apple-darwin - -query stack during panic: -#0 [check_match] match-checking `::clone` -#1 [mir_built] building MIR for `::clone` -#2 [check_unsafety] unsafety-checking `::clone` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x1133dedf4 - ::lower_pat - 19: 0x112de00d7 - ::lower_pattern - 20: 0x112de0b9b - ::check_match - 21: 0x112de5e7c - ::visit_expr - 22: 0x112de5bca - ::visit_expr - 23: 0x112de5ea3 - ::visit_expr - 24: 0x112de5bca - ::visit_expr - 25: 0x112de5ea3 - ::visit_expr - 26: 0x112de5bca - ::visit_expr - 27: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 28: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 29: 0x11377758c - >::call_once - 30: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 31: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 32: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 33: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 34: 0x113628a0c - >::call_once - 35: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 36: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 37: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 38: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 39: 0x1136f7bfc - >::call_once - 40: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 41: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 42: 0x1128afc5d - ::par_body_owners::::{closure#0} - 43: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 44: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 45: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 46: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 47: 0x11377e8f9 - >::call_once - 48: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 49: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 50: 0x111ffa559 - ::enter::> - 51: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 52: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 53: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 54: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 55: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 56: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::eq` -#1 [mir_built] building MIR for `::eq` -#2 [check_unsafety] unsafety-checking `::eq` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x112de00d7 - ::lower_pattern - 18: 0x112de0b9b - ::check_match - 19: 0x112de5e7c - ::visit_expr - 20: 0x112de5bca - ::visit_expr - 21: 0x112de5ea3 - ::visit_expr - 22: 0x112de5bca - ::visit_expr - 23: 0x112de5ea3 - ::visit_expr - 24: 0x112de5bca - ::visit_expr - 25: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 26: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 27: 0x11377758c - >::call_once - 28: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 29: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 30: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 31: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 32: 0x113628a0c - >::call_once - 33: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 34: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 35: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 36: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 37: 0x1136f7bfc - >::call_once - 38: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 39: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 40: 0x1128afc5d - ::par_body_owners::::{closure#0} - 41: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 42: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 43: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 44: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 45: 0x11377e8f9 - >::call_once - 46: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 47: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 48: 0x111ffa559 - ::enter::> - 49: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 50: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 51: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 52: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 53: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 54: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `_::::size_hint` -#1 [mir_built] building MIR for `_::::size_hint` -#2 [check_unsafety] unsafety-checking `_::::size_hint` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x112de00d7 - ::lower_pattern - 18: 0x112de0b9b - ::check_match - 19: 0x112de5e7c - ::visit_expr - 20: 0x112de5bca - ::visit_expr - 21: 0x112de5ea3 - ::visit_expr - 22: 0x112de5bca - ::visit_expr - 23: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 24: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 25: 0x11377758c - >::call_once - 26: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 27: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 28: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 29: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 30: 0x113628a0c - >::call_once - 31: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 32: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 33: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 34: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 35: 0x1136f7bfc - >::call_once - 36: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 37: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 38: 0x1128afc5d - ::par_body_owners::::{closure#0} - 39: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 40: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 41: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 42: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 43: 0x11377e8f9 - >::call_once - 44: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 45: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 46: 0x111ffa559 - ::enter::> - 47: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 48: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 49: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 50: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 51: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 52: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `_::::encode_to` -#1 [mir_built] building MIR for `_::::encode_to` -#2 [check_unsafety] unsafety-checking `_::::encode_to` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x112de00d7 - ::lower_pattern - 19: 0x112de0b9b - ::check_match - 20: 0x112de5e7c - ::visit_expr - 21: 0x112de5bca - ::visit_expr - 22: 0x112de5ea3 - ::visit_expr - 23: 0x112de5bca - ::visit_expr - 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11377758c - >::call_once - 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x113628a0c - >::call_once - 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1136f7bfc - >::call_once - 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x1128afc5d - ::par_body_owners::::{closure#0} - 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11377e8f9 - >::call_once - 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x111ffa559 - ::enter::> - 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::fmt` -#1 [mir_built] building MIR for `::fmt` -#2 [check_unsafety] unsafety-checking `::fmt` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x112de00d7 - ::lower_pattern - 19: 0x112de0b9b - ::check_match - 20: 0x112de5e7c - ::visit_expr - 21: 0x112de5bca - ::visit_expr - 22: 0x112de5ea3 - ::visit_expr - 23: 0x112de5bca - ::visit_expr - 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11377758c - >::call_once - 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x113628a0c - >::call_once - 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1136f7bfc - >::call_once - 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x1128afc5d - ::par_body_owners::::{closure#0} - 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11377e8f9 - >::call_once - 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x111ffa559 - ::enter::> - 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::get_dispatch_info` -#1 [mir_built] building MIR for `::get_dispatch_info` -#2 [check_unsafety] unsafety-checking `::get_dispatch_info` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x112de00d7 - ::lower_pattern - 19: 0x112de0b9b - ::check_match - 20: 0x112de5e7c - ::visit_expr - 21: 0x112de5bca - ::visit_expr - 22: 0x112de5ea3 - ::visit_expr - 23: 0x112de5bca - ::visit_expr - 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11377758c - >::call_once - 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x113628a0c - >::call_once - 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1136f7bfc - >::call_once - 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x1128afc5d - ::par_body_owners::::{closure#0} - 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11377e8f9 - >::call_once - 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x111ffa559 - ::enter::> - 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::is_feeless` -#1 [mir_built] building MIR for `::is_feeless` -#2 [check_unsafety] unsafety-checking `::is_feeless` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x112de00d7 - ::lower_pattern - 19: 0x112de0b9b - ::check_match - 20: 0x112de5e7c - ::visit_expr - 21: 0x112de5bca - ::visit_expr - 22: 0x112de5ea3 - ::visit_expr - 23: 0x112de5bca - ::visit_expr - 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11377758c - >::call_once - 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x113628a0c - >::call_once - 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1136f7bfc - >::call_once - 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x1128afc5d - ::par_body_owners::::{closure#0} - 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11377e8f9 - >::call_once - 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x111ffa559 - ::enter::> - 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::get_call_metadata` -#1 [mir_built] building MIR for `::get_call_metadata` -#2 [check_unsafety] unsafety-checking `::get_call_metadata` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x112de00d7 - ::lower_pattern - 18: 0x112de0b9b - ::check_match - 19: 0x112de5e7c - ::visit_expr - 20: 0x112de5bca - ::visit_expr - 21: 0x112de5ea3 - ::visit_expr - 22: 0x112de5bca - ::visit_expr - 23: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 24: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 25: 0x11377758c - >::call_once - 26: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 27: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 28: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 29: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 30: 0x113628a0c - >::call_once - 31: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 32: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 33: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 34: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 35: 0x1136f7bfc - >::call_once - 36: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 37: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 38: 0x1128afc5d - ::par_body_owners::::{closure#0} - 39: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 40: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 41: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 42: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 43: 0x11377e8f9 - >::call_once - 44: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 45: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 46: 0x111ffa559 - ::enter::> - 47: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 48: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 49: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 50: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 51: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 52: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::dispatch_bypass_filter` -#1 [mir_built] building MIR for `::dispatch_bypass_filter` -#2 [check_unsafety] unsafety-checking `::dispatch_bypass_filter` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x112de00d7 - ::lower_pattern - 19: 0x112de0b9b - ::check_match - 20: 0x112de5e7c - ::visit_expr - 21: 0x112de5bca - ::visit_expr - 22: 0x112de5ea3 - ::visit_expr - 23: 0x112de5bca - ::visit_expr - 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11377758c - >::call_once - 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x113628a0c - >::call_once - 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1136f7bfc - >::call_once - 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x1128afc5d - ::par_body_owners::::{closure#0} - 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11377e8f9 - >::call_once - 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x111ffa559 - ::enter::> - 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::is_sub_type` -#1 [mir_built] building MIR for `::is_sub_type` -#2 [check_unsafety] unsafety-checking `::is_sub_type` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x112de00d7 - ::lower_pattern - 19: 0x112de0b9b - ::check_match - 20: 0x112de5e7c - ::visit_expr - 21: 0x112de5bca - ::visit_expr - 22: 0x112de5ea3 - ::visit_expr - 23: 0x112de5bca - ::visit_expr - 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11377758c - >::call_once - 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x113628a0c - >::call_once - 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1136f7bfc - >::call_once - 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x1128afc5d - ::par_body_owners::::{closure#0} - 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11377e8f9 - >::call_once - 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x111ffa559 - ::enter::> - 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::pre_dispatch` -#1 [mir_built] building MIR for `::pre_dispatch` -#2 [check_unsafety] unsafety-checking `::pre_dispatch` -#3 [analysis] running analysis passes on this crate -end of query stack -thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44: -Box -stack backtrace: - 0: 0x108364137 - std::backtrace::Backtrace::create::hae27f5ddc3215c1c - 1: 0x108364085 - std::backtrace::Backtrace::force_capture::hb31f4a89b7074f32 - 2: 0x11201ccf0 - std[fd9f20d66909cf3a]::panicking::update_hook::>::{closure#0} - 3: 0x10837e36b - std::panicking::rust_panic_with_hook::h6dfd9ff22c87d595 - 4: 0x1120983fa - std[fd9f20d66909cf3a]::panicking::begin_panic::::{closure#0} - 5: 0x112097fc9 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> - 6: 0x116a586d9 - std[fd9f20d66909cf3a]::panicking::begin_panic:: - 7: 0x112081276 - ::emit_producing_guarantee - 8: 0x112babfb2 - ::bug:: - 9: 0x112c05e92 - rustc_middle[f86bb30376c4dce5]::util::bug::opt_span_bug_fmt::::{closure#0} - 10: 0x112c02a87 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} - 11: 0x112c02a42 - rustc_middle[f86bb30376c4dce5]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> - 12: 0x116b08b5b - rustc_middle[f86bb30376c4dce5]::util::bug::bug_fmt - 13: 0x112c0202b - >::fold_ty - 14: 0x1133de37c - ::list_variant_nonhidden_fields::{closure#0} - 15: 0x1133e5e9f - > as alloc[43c2d03076b986c7]::vec::spec_from_iter::SpecFromIter, core[43fa9a141e410914]::iter::adapters::map::Map>, ::list_variant_nonhidden_fields::{closure#0}>>, ::lower_pat::{closure#4}>, ::lower_pat::{closure#5}>>>::from_iter - 16: 0x1133dfe43 - ::lower_pat - 17: 0x1133df209 - ::lower_pat - 18: 0x112de00d7 - ::lower_pattern - 19: 0x112de0b9b - ::check_match - 20: 0x112de5e7c - ::visit_expr - 21: 0x112de5bca - ::visit_expr - 22: 0x112de5ea3 - ::visit_expr - 23: 0x112de5bca - ::visit_expr - 24: 0x112ddf6b8 - rustc_mir_build[c466099d4ae69992]::thir::pattern::check_match::check_match - 25: 0x1135a5f0f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 26: 0x11377758c - >::call_once - 27: 0x11355179d - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 28: 0x11362d0ca - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace - 29: 0x112d49c82 - rustc_mir_build[c466099d4ae69992]::build::mir_built - 30: 0x1135ab29f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 31: 0x113628a0c - >::call_once - 32: 0x11355a8a7 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 33: 0x1136bf39b - rustc_query_impl[c5848555dbdf0bff]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace - 34: 0x112e0a32f - rustc_mir_build[c466099d4ae69992]::check_unsafety::check_unsafety - 35: 0x1135a666f - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 36: 0x1136f7bfc - >::call_once - 37: 0x11354a569 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 38: 0x113781baa - rustc_query_impl[c5848555dbdf0bff]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace - 39: 0x1128afc5d - ::par_body_owners::::{closure#0} - 40: 0x11286e02d - ::run::<(), rustc_data_structures[33aa938ba56344c2]::sync::parallel::enabled::par_for_each_in<&rustc_span[5d765f42496e880c]::def_id::LocalDefId, &[rustc_span[5d765f42496e880c]::def_id::LocalDefId], ::par_body_owners::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> - 41: 0x1128d9b0e - ::time::<(), rustc_interface[1baa211114c88192]::passes::analysis::{closure#1}> - 42: 0x1128ca4e1 - rustc_interface[1baa211114c88192]::passes::analysis - 43: 0x1135aaeed - rustc_query_impl[c5848555dbdf0bff]::plumbing::__rust_begin_short_backtrace::> - 44: 0x11377e8f9 - >::call_once - 45: 0x1134ab4b5 - rustc_query_system[2f3f04b3e0f58f4a]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[c5848555dbdf0bff]::plumbing::QueryCtxt, false> - 46: 0x1136becf1 - rustc_query_impl[c5848555dbdf0bff]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace - 47: 0x111ffa559 - ::enter::> - 48: 0x111fd1d1d - ::enter::, rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 49: 0x111ff97e6 - rustc_span[5d765f42496e880c]::set_source_map::, rustc_interface[1baa211114c88192]::interface::run_compiler, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> - 50: 0x112003809 - std[fd9f20d66909cf3a]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>> - 51: 0x111fc86c3 - <::spawn_unchecked_, rustc_driver_impl[50f0eca0e44b3f6]::run_compiler::{closure#0}>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[43fa9a141e410914]::result::Result<(), rustc_span[5d765f42496e880c]::ErrorGuaranteed>>::{closure#1} as core[43fa9a141e410914]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 52: 0x1083870f9 - std::sys::pal::unix::thread::Thread::new::thread_start::h3133730d4b108bd1 - 53: 0x7ff80170018b - __pthread_start - - -query stack during panic: -#0 [check_match] match-checking `::validate_unsigned` -#1 [mir_built] building MIR for `::validate_unsigned` -#2 [check_unsafety] unsafety-checking `::validate_unsigned` -#3 [analysis] running analysis passes on this crate -end of query stack From a8eb923a3d8806e05ff597fef18e5c1e272f05ee Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Sun, 26 May 2024 05:29:31 -0400 Subject: [PATCH 04/17] init pallet multicurrency to satisfy orml currencies MultiCurrency trait bounds using balances and assets configs --- evm-template/Cargo.lock | 34 +++++---- evm-template/Cargo.toml | 18 ++++- evm-template/pallets/multicurrency/Cargo.toml | 46 +++++++++++++ evm-template/pallets/multicurrency/src/lib.rs | 8 +++ evm-template/runtime/Cargo.toml | 10 +++ evm-template/runtime/src/defi.rs | 69 +++++++++++++++++++ evm-template/runtime/src/lib.rs | 22 ++---- 7 files changed, 177 insertions(+), 30 deletions(-) create mode 100644 evm-template/pallets/multicurrency/Cargo.toml create mode 100644 evm-template/pallets/multicurrency/src/lib.rs create mode 100644 evm-template/runtime/src/defi.rs diff --git a/evm-template/Cargo.lock b/evm-template/Cargo.lock index 9a684fc6..8d8e86b4 100644 --- a/evm-template/Cargo.lock +++ b/evm-template/Cargo.lock @@ -4283,7 +4283,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core", ] [[package]] @@ -6139,7 +6139,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.66", @@ -6253,6 +6253,23 @@ dependencies = [ "num-traits", ] +[[package]] +name = "orml-currencies" +version = "0.10.0" +source = "git+https://github.com/OpenZeppelin/open-runtime-module-library.git?branch=polkadot-v1.7.0#9a6c2fdcd13bae0d921e5c33e83eabbc89a6a716" +dependencies = [ + "frame-support", + "frame-system", + "orml-traits", + "orml-utilities", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + [[package]] name = "orml-traits" version = "0.10.0" @@ -7540,6 +7557,7 @@ dependencies = [ "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-utility", + "evm", "fp-account", "frame-benchmarking", "frame-executive", @@ -7550,6 +7568,7 @@ dependencies = [ "frame-try-runtime", "hex-literal 0.4.1", "log", + "orml-currencies", "pallet-assets", "pallet-aura", "pallet-authorship", @@ -14604,7 +14623,7 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core 0.51.1", + "windows-core", "windows-targets 0.48.5", ] @@ -14617,15 +14636,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.5", -] - [[package]] name = "windows-sys" version = "0.45.0" diff --git a/evm-template/Cargo.toml b/evm-template/Cargo.toml index 48235ffe..170546d9 100644 --- a/evm-template/Cargo.toml +++ b/evm-template/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = [ "node", "runtime", "template-fuzzer" ] +members = [ "node", "pallets/multicurrency", "runtime", "template-fuzzer" ] resolver = "2" [workspace.package] @@ -130,10 +130,26 @@ parachains-common = { git = "https://github.com/paritytech/polkadot-sdk", defaul # Frontier fp-account = { git = "https://github.com/OpenZeppelin/frontier", branch = "polkadot-v1.7.0", default-features = false, features = [ "serde" ] } +evm = { version = "0.41.1", default-features = false } + +# Open Runtime Module Library +#orml-benchmarking = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +orml-currencies = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +#orml-tokens = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +#orml-traits = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +#orml-utilities = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +#orml-vesting = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +#orml-unknown-tokens = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git",branch = "polkadot-v1.7.0", default-features = false } +#orml-xcm = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git",branch = "polkadot-v1.7.0", default-features = false } +#orml-xcm-support = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git",branch = "polkadot-v1.7.0", default-features = false } +#orml-xtokens = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git",branch = "polkadot-v1.7.0", default-features = false } # HydraDX pallet-transaction-multi-payment = { git = "https://github.com/OpenZeppelin/HydraDX-node", branch = "polkadot-v1.7.0", default-features = false } +# Custom +pallet-multicurrency = { path = "pallets/multicurrency", default-features = false } + # Fuzzer substrate-runtime-fuzzer = { git = "https://github.com/srlabs/substrate-runtime-fuzzer.git", default-features = false } ziggy = { version = "0.8", default-features = false } diff --git a/evm-template/pallets/multicurrency/Cargo.toml b/evm-template/pallets/multicurrency/Cargo.toml new file mode 100644 index 00000000..4feaa3b8 --- /dev/null +++ b/evm-template/pallets/multicurrency/Cargo.toml @@ -0,0 +1,46 @@ +[package] +name = "pallet-multicurrency" +description = "Combine pallet-assets + pallet-balances to satisfy MultiCurrency bounds for orml-currencies::Config::MultiCurrency" +authors = { workspace = true } +edition = { workspace = true } +license = { workspace = true } +repository = { workspace = true } +version = "0.1.0" + +[dependencies] +parity-scale-codec = { workspace = true } +scale-info = { workspace = true } +serde = { workspace = true, optional = true } + +frame-support = { workspace = true } +frame-system = { workspace = true } +sp-io = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } + +#orml-traits = { workspace = true } +#orml-utilities = { workspace = true } + +[dev-dependencies] +pallet-balances = { workspace = true, features = ["std"] } +sp-core = { workspace = true, features = ["std"] } + +[features] +default = [ "std" ] +std = [ + "frame-support/std", + "frame-system/std", + #"orml-traits/std", + #"orml-utilities/std", + "parity-scale-codec/std", + "scale-info/std", + "serde", + "sp-io/std", + "sp-runtime/std", + "sp-std/std", +] +try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "sp-runtime/try-runtime", +] diff --git a/evm-template/pallets/multicurrency/src/lib.rs b/evm-template/pallets/multicurrency/src/lib.rs new file mode 100644 index 00000000..fa8d8288 --- /dev/null +++ b/evm-template/pallets/multicurrency/src/lib.rs @@ -0,0 +1,8 @@ +// TODOs +// 1. direct inheritance of Config for that of assets and balances pallets +// 2. Implement the following traits by the pallet: +// TransferAll +// + MultiCurrencyExtended +// + MultiLockableCurrency +// + MultiReservableCurrency +// + NamedMultiReservableCurrency; diff --git a/evm-template/runtime/Cargo.toml b/evm-template/runtime/Cargo.toml index 857bb355..9da9206a 100644 --- a/evm-template/runtime/Cargo.toml +++ b/evm-template/runtime/Cargo.toml @@ -84,6 +84,13 @@ parachains-common = { workspace = true } # Frontier fp-account = { workspace = true } +evm = { workspace = true, features = ["with-codec"] } + +# Open Runtime Module Library +orml-currencies = { workspace = true } + +# Custom +pallet-multicurrency = { workspace = true } # HydraDX pallet-transaction-multi-payment = { workspace = true } @@ -121,6 +128,7 @@ std = [ "pallet-collator-selection/std", "pallet-conviction-voting/std", "pallet-message-queue/std", + "pallet-multicurrency/std", "pallet-multisig/std", "pallet-preimage/std", "pallet-proxy/std", @@ -158,6 +166,7 @@ std = [ "xcm-builder/std", "xcm-executor/std", "xcm/std", + 'orml-currencies/std', ] async-backing = [] @@ -211,6 +220,7 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-conviction-voting/try-runtime", "pallet-message-queue/try-runtime", + "pallet-multicurrency/try-runtime", "pallet-multisig/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", diff --git a/evm-template/runtime/src/defi.rs b/evm-template/runtime/src/defi.rs new file mode 100644 index 00000000..eb302654 --- /dev/null +++ b/evm-template/runtime/src/defi.rs @@ -0,0 +1,69 @@ +use parity_scale_codec::{Decode, Encode}; +use scale_info::TypeInfo; + +/// High-level currency categories supported on this chain +// TODO: add Erc20 variant like Moonbeam which calls contract_address in EVM via ERC 20 interface +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum CurrencyId { + // Our native token + Native, + // Assets representing other chain's native tokens + ForeignAsset(AssetId), +} + +parameter_types! { + pub const GetNativeCurrencyId: CurrencyId = CurrencyId::Native; +} + +// TODO: keep custom pallet in pallets until successfull upstreams +// pa +// MultiCurrency trait bounds to satisfy with pallet to upstream +// TransferAll +// + MultiCurrencyExtended +// + MultiLockableCurrency +// + MultiReservableCurrency +// + NamedMultiReservableCurrency; + +impl orml_currencies::Config for Runtime { + type GetNativeCurrencyId = GetNativeCurrencyId; + // TODO: make this work or impl MultiCurrency trait for runtime using Assets + Balances + // > consider extracting this and other configs out into own defi file + type MultiCurrency = (); + // TODO: impl Assets + Balances for this functionality + type NativeCurrency = + orml_currencies::BasicCurrencyAdapter; + type WeightInfo = (); // TODO: run weights for this runtime and use generated weights +} + +// parameter_types! { +// // TODO: make sure this is Balances pallet AssetId everywhere else +// pub const NativeAssetId : AssetId = 0; +// } +////UNCOMMENT ONLY AFTER construct_runtime part uncommented +// impl pallet_transaction_multi_payment::Config for Runtime { +// type AcceptedCurrencyOrigin = EnsureRoot; +// // TODO: impl orml-currency to combine pallet-asset + pallet-balances +// // for a sensible MultiCurrency impl +// // or impl MultiCurrency by runtime using pallet-asset + pallet-balances +// type Currencies = Currencies; +// //Currencies +// // TODO: ensure matches EVM used in `pallet_evm` +// type EvmAssetId = evm::WethAssetId; +// type EvmPermit = evm::permit::EvmPermitHandler; +// // TODO: impl InspectEVMAccounts by Runtime in separate folder +// // because we do not require pallet-evm-accounts config +// type InspectEvmAccounts = (); +// //EVMAccounts +// //TODO +// type NativeAssetId = (); +// //NativeAssetId +// type OraclePriceProvider = (); +// //OraclePriceProvider; +// type RouteProvider = (); +// //Router; +// type RuntimeEvent = RuntimeEvent; +// type TryCallCurrency<'a> = pallet_transaction_multi_payment::TryCallCurrency; +// type WeightInfo = (); +// //TODO: run weights in context of this runtime, first add to benchmarking runtime config +// type WeightToFee = WeightToFee; +// } diff --git a/evm-template/runtime/src/lib.rs b/evm-template/runtime/src/lib.rs index 60dd27ea..e845881b 100644 --- a/evm-template/runtime/src/lib.rs +++ b/evm-template/runtime/src/lib.rs @@ -7,6 +7,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); pub mod constants; +pub mod defi; pub mod governance; mod weights; pub mod xcm_config; @@ -567,22 +568,6 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; } -impl pallet_transaction_multi_payment::Config for Runtime { - type AcceptedCurrencyOrigin = EnsureRoot; - type Currencies = Currencies; - type EvmAssetId = evm::WethAssetId; - type EvmPermit = evm::permit::EvmPermitHandler; - type InspectEvmAccounts = EVMAccounts; - //TODO - type NativeAssetId = NativeAssetId; - type OraclePriceProvider = OraclePriceProvider; - type RouteProvider = Router; - type RuntimeEvent = RuntimeEvent; - type TryCallCurrency<'a> = pallet_transaction_multi_payment::TryCallCurrency; - type WeightInfo = (); - type WeightToFee = WeightToFee; -} - impl pallet_sudo::Config for Runtime { type RuntimeCall = RuntimeCall; type RuntimeEvent = RuntimeEvent; @@ -846,7 +831,6 @@ construct_runtime!( TransactionPayment: pallet_transaction_payment = 11, Assets: pallet_assets = 12, Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event} = 13, - MultiTransactionPayment: pallet_transaction_multi_payment = 14, // Governance Sudo: pallet_sudo = 15, @@ -867,6 +851,10 @@ construct_runtime!( PolkadotXcm: pallet_xcm = 31, CumulusXcm: cumulus_pallet_xcm = 32, MessageQueue: pallet_message_queue = 33, + + // DeFi + Currencies: orml_currencies = 40, + //MultiTransactionPayment: pallet_transaction_multi_payment = 36, } ); From 5cbc550c6660fdea023cc06bc93350bbda29df6d Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Sun, 26 May 2024 06:12:00 -0400 Subject: [PATCH 05/17] planning --- evm-template/pallets/multicurrency/src/lib.rs | 284 +++++++++++++++++- 1 file changed, 276 insertions(+), 8 deletions(-) diff --git a/evm-template/pallets/multicurrency/src/lib.rs b/evm-template/pallets/multicurrency/src/lib.rs index fa8d8288..21fc47f3 100644 --- a/evm-template/pallets/multicurrency/src/lib.rs +++ b/evm-template/pallets/multicurrency/src/lib.rs @@ -1,8 +1,276 @@ -// TODOs -// 1. direct inheritance of Config for that of assets and balances pallets -// 2. Implement the following traits by the pallet: -// TransferAll -// + MultiCurrencyExtended -// + MultiLockableCurrency -// + MultiReservableCurrency -// + NamedMultiReservableCurrency; +// TODO: make issue to upstream as follow-up to this PR +// This pallet sensibly routes asset operation execution to pallet-balances for the native asset and to pallet-assets for foreign assets. +// +// The specific motivaton of this pallet was to satisfy the trait bounds of orml_currencues::Config::MultiCurrency such that `orml_currencies` routes asset operation execution to pallet-balances for the native asset and pallet-assets for foreign assets. + +#![cfg_attr(not(feature = "std"), no_std)] +#![allow(clippy::unused_unit)] + +use frame_support::{ + pallet_prelude::*, + traits::{ + Currency as PalletCurrency, ExistenceRequirement, Get, Imbalance, + LockableCurrency as PalletLockableCurrency, + NamedReservableCurrency as PalletNamedReservableCurrency, + ReservableCurrency as PalletReservableCurrency, WithdrawReasons, + }, +}; +use frame_system::{ensure_root, ensure_signed, pallet_prelude::*}; +use orml_traits::{ + arithmetic::{Signed, SimpleArithmetic}, + currency::TransferAll, + BalanceStatus, BasicCurrency, BasicCurrencyExtended, BasicLockableCurrency, + BasicReservableCurrency, LockIdentifier, MultiCurrency, MultiCurrencyExtended, + MultiLockableCurrency, MultiReservableCurrency, NamedBasicReservableCurrency, + NamedMultiReservableCurrency, +}; +use orml_utilities::with_transaction_result; +use parity_scale_codec::Codec; +use sp_runtime::{ + traits::{CheckedSub, MaybeSerializeDeserialize, StaticLookup, Zero}, + DispatchError, DispatchResult, +}; +use sp_std::{fmt::Debug, marker, result}; + +// mod mock; +// mod tests; +// mod weights; + +// pub use module::*; +// pub use weights::WeightInfo; + +#[frame_support::pallet] +pub mod module { + use super::*; + + #[pallet::config] + pub trait Config: + frame_system::Config + pallet_assets::Config + pallet_balances::Config + { + } + + #[pallet::pallet] + pub struct Pallet(_); +} + +impl TransferAll for Pallet { + fn transfer_all(source: &T::AccountId, dest: &T::AccountId) -> DispatchResult { + with_transaction_result(|| { + // transfer non-native free to dest + // TODO: use assets pallet here + T::MultiCurrency::transfer_all(source, dest)?; + + // transfer all free to dest + // TODO: use balances pallet here + T::NativeCurrency::transfer(source, dest, T::NativeCurrency::free_balance(source)) + }) + } +} + +impl MultiCurrencyExtended for Pallet { + // TODO: impl using pallet-assets or pallet-balances + type Amount = AmountOf; + + fn update_balance( + currency_id: Self::CurrencyId, + who: &T::AccountId, + by_amount: Self::Amount, + ) -> DispatchResult { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::update_balance(who, by_amount) + } else { + T::MultiCurrency::update_balance(currency_id, who, by_amount) + } + } +} + +impl MultiLockableCurrency for Pallet { + type Moment = BlockNumberFor; + + fn set_lock( + lock_id: LockIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::set_lock(lock_id, who, amount) + } else { + T::MultiCurrency::set_lock(lock_id, currency_id, who, amount) + } + } + + fn extend_lock( + lock_id: LockIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::extend_lock(lock_id, who, amount) + } else { + T::MultiCurrency::extend_lock(lock_id, currency_id, who, amount) + } + } + + fn remove_lock( + lock_id: LockIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + ) -> DispatchResult { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::remove_lock(lock_id, who) + } else { + T::MultiCurrency::remove_lock(lock_id, currency_id, who) + } + } +} + +impl MultiReservableCurrency for Pallet { + fn can_reserve( + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> bool { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::can_reserve(who, value) + } else { + T::MultiCurrency::can_reserve(currency_id, who, value) + } + } + + fn slash_reserved( + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::slash_reserved(who, value) + } else { + T::MultiCurrency::slash_reserved(currency_id, who, value) + } + } + + fn reserved_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::reserved_balance(who) + } else { + T::MultiCurrency::reserved_balance(currency_id, who) + } + } + + fn reserve( + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> DispatchResult { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::reserve(who, value) + } else { + T::MultiCurrency::reserve(currency_id, who, value) + } + } + + fn unreserve( + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::unreserve(who, value) + } else { + T::MultiCurrency::unreserve(currency_id, who, value) + } + } + + fn repatriate_reserved( + currency_id: Self::CurrencyId, + slashed: &T::AccountId, + beneficiary: &T::AccountId, + value: Self::Balance, + status: BalanceStatus, + ) -> result::Result { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::repatriate_reserved(slashed, beneficiary, value, status) + } else { + T::MultiCurrency::repatriate_reserved(currency_id, slashed, beneficiary, value, status) + } + } +} + +impl NamedMultiReservableCurrency for Pallet { + type ReserveIdentifier = ReserveIdentifierOf; + + fn slash_reserved_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::slash_reserved_named(id, who, value) + } else { + T::MultiCurrency::slash_reserved_named(id, currency_id, who, value) + } + } + + fn reserved_balance_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + ) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::reserved_balance_named(id, who) + } else { + T::MultiCurrency::reserved_balance_named(id, currency_id, who) + } + } + + fn reserve_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> DispatchResult { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::reserve_named(id, who, value) + } else { + T::MultiCurrency::reserve_named(id, currency_id, who, value) + } + } + + fn unreserve_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::unreserve_named(id, who, value) + } else { + T::MultiCurrency::unreserve_named(id, currency_id, who, value) + } + } + + fn repatriate_reserved_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + slashed: &T::AccountId, + beneficiary: &T::AccountId, + value: Self::Balance, + status: BalanceStatus, + ) -> result::Result { + if currency_id == T::GetNativeCurrencyId::get() { + T::NativeCurrency::repatriate_reserved_named(id, slashed, beneficiary, value, status) + } else { + T::MultiCurrency::repatriate_reserved_named( + id, + currency_id, + slashed, + beneficiary, + value, + status, + ) + } + } +} From 3a821bf9f2c4f82a6792902e51d70036643bb952 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Sun, 26 May 2024 13:52:10 -0400 Subject: [PATCH 06/17] save progress --- evm-template/Cargo.lock | 20 ++ evm-template/Cargo.toml | 4 +- evm-template/pallets/multicurrency/Cargo.toml | 14 +- evm-template/pallets/multicurrency/src/lib.rs | 220 ++++++++++++++---- 4 files changed, 209 insertions(+), 49 deletions(-) diff --git a/evm-template/Cargo.lock b/evm-template/Cargo.lock index 8d8e86b4..c15d75d7 100644 --- a/evm-template/Cargo.lock +++ b/evm-template/Cargo.lock @@ -6890,6 +6890,25 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", ] +[[package]] +name = "pallet-multicurrency" +version = "0.1.0" +dependencies = [ + "frame-support", + "frame-system", + "orml-traits", + "orml-utilities", + "pallet-assets", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + [[package]] name = "pallet-multisig" version = "28.0.0" @@ -7576,6 +7595,7 @@ dependencies = [ "pallet-collator-selection", "pallet-conviction-voting", "pallet-message-queue", + "pallet-multicurrency", "pallet-multisig", "pallet-preimage", "pallet-proxy", diff --git a/evm-template/Cargo.toml b/evm-template/Cargo.toml index 170546d9..d428c48b 100644 --- a/evm-template/Cargo.toml +++ b/evm-template/Cargo.toml @@ -136,8 +136,8 @@ evm = { version = "0.41.1", default-features = false } #orml-benchmarking = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } orml-currencies = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } #orml-tokens = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } -#orml-traits = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } -#orml-utilities = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +orml-traits = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +orml-utilities = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } #orml-vesting = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } #orml-unknown-tokens = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git",branch = "polkadot-v1.7.0", default-features = false } #orml-xcm = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git",branch = "polkadot-v1.7.0", default-features = false } diff --git a/evm-template/pallets/multicurrency/Cargo.toml b/evm-template/pallets/multicurrency/Cargo.toml index 4feaa3b8..fed2b058 100644 --- a/evm-template/pallets/multicurrency/Cargo.toml +++ b/evm-template/pallets/multicurrency/Cargo.toml @@ -18,11 +18,13 @@ sp-io = { workspace = true } sp-runtime = { workspace = true } sp-std = { workspace = true } -#orml-traits = { workspace = true } -#orml-utilities = { workspace = true } +pallet-balances = { workspace = true } +pallet-assets = { workspace = true } + +orml-traits = { workspace = true } +orml-utilities = { workspace = true } [dev-dependencies] -pallet-balances = { workspace = true, features = ["std"] } sp-core = { workspace = true, features = ["std"] } [features] @@ -30,8 +32,10 @@ default = [ "std" ] std = [ "frame-support/std", "frame-system/std", - #"orml-traits/std", - #"orml-utilities/std", + "orml-traits/std", + "orml-utilities/std", + "pallet-assets/std", + "pallet-balances/std", "parity-scale-codec/std", "scale-info/std", "serde", diff --git a/evm-template/pallets/multicurrency/src/lib.rs b/evm-template/pallets/multicurrency/src/lib.rs index 21fc47f3..1e8caeef 100644 --- a/evm-template/pallets/multicurrency/src/lib.rs +++ b/evm-template/pallets/multicurrency/src/lib.rs @@ -16,6 +16,7 @@ use frame_support::{ }, }; use frame_system::{ensure_root, ensure_signed, pallet_prelude::*}; +pub use module::*; use orml_traits::{ arithmetic::{Signed, SimpleArithmetic}, currency::TransferAll, @@ -32,21 +33,27 @@ use sp_runtime::{ }; use sp_std::{fmt::Debug, marker, result}; -// mod mock; -// mod tests; -// mod weights; - -// pub use module::*; -// pub use weights::WeightInfo; - #[frame_support::pallet] pub mod module { use super::*; + pub(crate) type BalanceOf = as PalletCurrency< + ::AccountId, + >>::Balance; + // pub(crate) type CurrencyIdOf = + // <::MultiCurrency as MultiCurrency<::AccountId>>::CurrencyId; + // pub(crate) type AmountOf = + // <::MultiCurrency as MultiCurrencyExtended<::AccountId>>::Amount; + // pub(crate) type ReserveIdentifierOf = <::MultiCurrency as NamedMultiReservableCurrency< + // ::AccountId, + // >>::ReserveIdentifier; + #[pallet::config] pub trait Config: frame_system::Config + pallet_assets::Config + pallet_balances::Config { + // TODO: CurrencyId should be defined in runtime and only used here in a more generic way + type NativeCurrencyId: Get; } #[pallet::pallet] @@ -57,18 +64,135 @@ impl TransferAll for Pallet { fn transfer_all(source: &T::AccountId, dest: &T::AccountId) -> DispatchResult { with_transaction_result(|| { // transfer non-native free to dest - // TODO: use assets pallet here - T::MultiCurrency::transfer_all(source, dest)?; + pallet_assets::Pallet::::transfer_all(source, dest)?; // transfer all free to dest - // TODO: use balances pallet here - T::NativeCurrency::transfer(source, dest, T::NativeCurrency::free_balance(source)) + pallet_balances::Pallet::::transfer( + source, + dest, + pallet_balances::Pallet::::free_balance(source), + ExistenceRequirement::KeepAlive, + ) }) } } +impl MultiCurrency for Pallet { + type Balance = BalanceOf; + type CurrencyId = CurrencyIdOf; + + fn minimum_balance(currency_id: Self::CurrencyId) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::minimum_balance() + } else { + pallet_assets::Pallet::::minimum_balance(currency_id) + } + } + + fn total_issuance(currency_id: Self::CurrencyId) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::total_issuance() + } else { + pallet_assets::Pallet::::total_issuance(currency_id) + } + } + + fn total_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::total_balance(who) + } else { + pallet_assets::Pallet::::total_balance(currency_id, who) + } + } + + fn free_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::free_balance(who) + } else { + pallet_assets::Pallet::::free_balance(currency_id, who) + } + } + + fn ensure_can_withdraw( + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::ensure_can_withdraw(who, amount) + } else { + pallet_assets::Pallet::::ensure_can_withdraw(currency_id, who, amount) + } + } + + fn transfer( + currency_id: Self::CurrencyId, + from: &T::AccountId, + to: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + if amount.is_zero() || from == to { + return Ok(()); + } + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::transfer(from, to, amount) + } else { + pallet_assets::Pallet::::transfer(currency_id, from, to, amount) + } + } + + fn deposit( + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + if amount.is_zero() { + return Ok(()); + } + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::deposit(who, amount) + } else { + pallet_assets::Pallet::::deposit(currency_id, who, amount) + } + } + + fn withdraw( + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + if amount.is_zero() { + return Ok(()); + } + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::withdraw(who, amount) + } else { + pallet_assets::Pallet::::withdraw(currency_id, who, amount) + } + } + + fn can_slash(currency_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance) -> bool { + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::can_slash(who, amount) + } else { + pallet_assets::Pallet::::can_slash(currency_id, who, amount) + } + } + + fn slash( + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> Self::Balance { + if currency_id == T::GetNativeCurrencyId::get() { + pallet_balances::Pallet::::slash(who, amount) + } else { + pallet_assets::Pallet::::slash(currency_id, who, amount) + } + } +} +// TODO: implement MultiCurrency as well impl MultiCurrencyExtended for Pallet { - // TODO: impl using pallet-assets or pallet-balances type Amount = AmountOf; fn update_balance( @@ -77,9 +201,9 @@ impl MultiCurrencyExtended for Pallet { by_amount: Self::Amount, ) -> DispatchResult { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::update_balance(who, by_amount) + pallet_balances::Pallet::::update_balance(who, by_amount) } else { - T::MultiCurrency::update_balance(currency_id, who, by_amount) + pallet_assets::Pallet::::update_balance(currency_id, who, by_amount) } } } @@ -94,9 +218,9 @@ impl MultiLockableCurrency for Pallet { amount: Self::Balance, ) -> DispatchResult { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::set_lock(lock_id, who, amount) + pallet_balances::Pallet::::set_lock(lock_id, who, amount) } else { - T::MultiCurrency::set_lock(lock_id, currency_id, who, amount) + pallet_assets::Pallet::::set_lock(lock_id, currency_id, who, amount) } } @@ -107,9 +231,9 @@ impl MultiLockableCurrency for Pallet { amount: Self::Balance, ) -> DispatchResult { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::extend_lock(lock_id, who, amount) + pallet_balances::Pallet::::extend_lock(lock_id, who, amount) } else { - T::MultiCurrency::extend_lock(lock_id, currency_id, who, amount) + pallet_assets::Pallet::::extend_lock(lock_id, currency_id, who, amount) } } @@ -119,9 +243,9 @@ impl MultiLockableCurrency for Pallet { who: &T::AccountId, ) -> DispatchResult { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::remove_lock(lock_id, who) + pallet_balances::Pallet::::remove_lock(lock_id, who) } else { - T::MultiCurrency::remove_lock(lock_id, currency_id, who) + pallet_assets::Pallet::::remove_lock(lock_id, currency_id, who) } } } @@ -133,9 +257,9 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, ) -> bool { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::can_reserve(who, value) + pallet_balances::Pallet::::can_reserve(who, value) } else { - T::MultiCurrency::can_reserve(currency_id, who, value) + pallet_assets::Pallet::::can_reserve(currency_id, who, value) } } @@ -145,17 +269,17 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, ) -> Self::Balance { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::slash_reserved(who, value) + pallet_balances::Pallet::::slash_reserved(who, value) } else { - T::MultiCurrency::slash_reserved(currency_id, who, value) + pallet_assets::Pallet::::slash_reserved(currency_id, who, value) } } fn reserved_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::reserved_balance(who) + pallet_balances::Pallet::::reserved_balance(who) } else { - T::MultiCurrency::reserved_balance(currency_id, who) + pallet_assets::Pallet::::reserved_balance(currency_id, who) } } @@ -165,9 +289,9 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, ) -> DispatchResult { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::reserve(who, value) + pallet_balances::Pallet::::reserve(who, value) } else { - T::MultiCurrency::reserve(currency_id, who, value) + pallet_assets::Pallet::::reserve(currency_id, who, value) } } @@ -177,9 +301,9 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, ) -> Self::Balance { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::unreserve(who, value) + pallet_balances::Pallet::::unreserve(who, value) } else { - T::MultiCurrency::unreserve(currency_id, who, value) + pallet_assets::Pallet::::unreserve(currency_id, who, value) } } @@ -191,9 +315,15 @@ impl MultiReservableCurrency for Pallet { status: BalanceStatus, ) -> result::Result { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::repatriate_reserved(slashed, beneficiary, value, status) + pallet_balances::Pallet::::repatriate_reserved(slashed, beneficiary, value, status) } else { - T::MultiCurrency::repatriate_reserved(currency_id, slashed, beneficiary, value, status) + pallet_assets::Pallet::::repatriate_reserved( + currency_id, + slashed, + beneficiary, + value, + status, + ) } } } @@ -208,9 +338,9 @@ impl NamedMultiReservableCurrency for Pallet { value: Self::Balance, ) -> Self::Balance { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::slash_reserved_named(id, who, value) + pallet_balances::Pallet::::slash_reserved_named(id, who, value) } else { - T::MultiCurrency::slash_reserved_named(id, currency_id, who, value) + pallet_assets::Pallet::::slash_reserved_named(id, currency_id, who, value) } } @@ -220,9 +350,9 @@ impl NamedMultiReservableCurrency for Pallet { who: &T::AccountId, ) -> Self::Balance { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::reserved_balance_named(id, who) + pallet_balances::Pallet::::reserved_balance_named(id, who) } else { - T::MultiCurrency::reserved_balance_named(id, currency_id, who) + pallet_assets::Pallet::::reserved_balance_named(id, currency_id, who) } } @@ -233,9 +363,9 @@ impl NamedMultiReservableCurrency for Pallet { value: Self::Balance, ) -> DispatchResult { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::reserve_named(id, who, value) + pallet_balances::Pallet::::reserve_named(id, who, value) } else { - T::MultiCurrency::reserve_named(id, currency_id, who, value) + pallet_assets::Pallet::::reserve_named(id, currency_id, who, value) } } @@ -246,9 +376,9 @@ impl NamedMultiReservableCurrency for Pallet { value: Self::Balance, ) -> Self::Balance { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::unreserve_named(id, who, value) + pallet_balances::Pallet::::unreserve_named(id, who, value) } else { - T::MultiCurrency::unreserve_named(id, currency_id, who, value) + pallet_assets::Pallet::::unreserve_named(id, currency_id, who, value) } } @@ -261,9 +391,15 @@ impl NamedMultiReservableCurrency for Pallet { status: BalanceStatus, ) -> result::Result { if currency_id == T::GetNativeCurrencyId::get() { - T::NativeCurrency::repatriate_reserved_named(id, slashed, beneficiary, value, status) + pallet_balances::Pallet::::repatriate_reserved_named( + id, + slashed, + beneficiary, + value, + status, + ) } else { - T::MultiCurrency::repatriate_reserved_named( + pallet_assets::Pallet::::repatriate_reserved_named( id, currency_id, slashed, From 00d9dd01b6ea9045c071508854062227c7fa6d9a Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 11:44:43 -0400 Subject: [PATCH 07/17] implemented multicurrency base traits using pallet assets wip for entire pallet multi assets --- evm-template/Cargo.lock | 5 +- evm-template/Cargo.toml | 4 +- .../Cargo.toml | 9 +- evm-template/pallets/multi-assets/src/lib.rs | 281 ++++++++++++ evm-template/pallets/multicurrency/src/lib.rs | 412 ------------------ evm-template/runtime/Cargo.toml | 6 +- 6 files changed, 291 insertions(+), 426 deletions(-) rename evm-template/pallets/{multicurrency => multi-assets}/Cargo.toml (81%) create mode 100644 evm-template/pallets/multi-assets/src/lib.rs delete mode 100644 evm-template/pallets/multicurrency/src/lib.rs diff --git a/evm-template/Cargo.lock b/evm-template/Cargo.lock index c15d75d7..79d9fbbb 100644 --- a/evm-template/Cargo.lock +++ b/evm-template/Cargo.lock @@ -6891,7 +6891,7 @@ dependencies = [ ] [[package]] -name = "pallet-multicurrency" +name = "pallet-multi-assets" version = "0.1.0" dependencies = [ "frame-support", @@ -6899,7 +6899,6 @@ dependencies = [ "orml-traits", "orml-utilities", "pallet-assets", - "pallet-balances", "parity-scale-codec", "scale-info", "serde", @@ -7595,7 +7594,7 @@ dependencies = [ "pallet-collator-selection", "pallet-conviction-voting", "pallet-message-queue", - "pallet-multicurrency", + "pallet-multi-assets", "pallet-multisig", "pallet-preimage", "pallet-proxy", diff --git a/evm-template/Cargo.toml b/evm-template/Cargo.toml index d428c48b..7b77fe78 100644 --- a/evm-template/Cargo.toml +++ b/evm-template/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = [ "node", "pallets/multicurrency", "runtime", "template-fuzzer" ] +members = [ "node", "pallets/multi-assets", "runtime", "template-fuzzer" ] resolver = "2" [workspace.package] @@ -148,7 +148,7 @@ orml-utilities = { git = "https://github.com/OpenZeppelin/open-runtime-module-li pallet-transaction-multi-payment = { git = "https://github.com/OpenZeppelin/HydraDX-node", branch = "polkadot-v1.7.0", default-features = false } # Custom -pallet-multicurrency = { path = "pallets/multicurrency", default-features = false } +pallet-multi-assets = { path = "pallets/multi-assets", default-features = false } # Fuzzer substrate-runtime-fuzzer = { git = "https://github.com/srlabs/substrate-runtime-fuzzer.git", default-features = false } diff --git a/evm-template/pallets/multicurrency/Cargo.toml b/evm-template/pallets/multi-assets/Cargo.toml similarity index 81% rename from evm-template/pallets/multicurrency/Cargo.toml rename to evm-template/pallets/multi-assets/Cargo.toml index fed2b058..c493bd46 100644 --- a/evm-template/pallets/multicurrency/Cargo.toml +++ b/evm-template/pallets/multi-assets/Cargo.toml @@ -1,6 +1,6 @@ [package] -name = "pallet-multicurrency" -description = "Combine pallet-assets + pallet-balances to satisfy MultiCurrency bounds for orml-currencies::Config::MultiCurrency" +name = "pallet-multi-assets" +description = "Wrap pallet-assets to implement MultiCurrency trait bounds for orml-currencies" authors = { workspace = true } edition = { workspace = true } license = { workspace = true } @@ -14,13 +14,11 @@ serde = { workspace = true, optional = true } frame-support = { workspace = true } frame-system = { workspace = true } +pallet-assets = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } sp-std = { workspace = true } -pallet-balances = { workspace = true } -pallet-assets = { workspace = true } - orml-traits = { workspace = true } orml-utilities = { workspace = true } @@ -35,7 +33,6 @@ std = [ "orml-traits/std", "orml-utilities/std", "pallet-assets/std", - "pallet-balances/std", "parity-scale-codec/std", "scale-info/std", "serde", diff --git a/evm-template/pallets/multi-assets/src/lib.rs b/evm-template/pallets/multi-assets/src/lib.rs new file mode 100644 index 00000000..48e98d9a --- /dev/null +++ b/evm-template/pallets/multi-assets/src/lib.rs @@ -0,0 +1,281 @@ +//! This pallet implements MultiCurrency trait bounds for pallet-assets +#![cfg_attr(not(feature = "std"), no_std)] +#![allow(clippy::unused_unit)] + +use frame_support::{ + pallet_prelude::*, + traits::{ + Currency as PalletCurrency, ExistenceRequirement, Get, Imbalance, + LockableCurrency as PalletLockableCurrency, + NamedReservableCurrency as PalletNamedReservableCurrency, + ReservableCurrency as PalletReservableCurrency, WithdrawReasons, + }, +}; +use frame_system::{ensure_root, ensure_signed, pallet_prelude::*}; +pub use module::*; +use orml_traits::{ + arithmetic::{Signed, SimpleArithmetic}, + currency::TransferAll, + BalanceStatus, BasicCurrency, BasicCurrencyExtended, BasicLockableCurrency, + BasicReservableCurrency, LockIdentifier, MultiCurrency, MultiCurrencyExtended, + MultiLockableCurrency, MultiReservableCurrency, NamedBasicReservableCurrency, + NamedMultiReservableCurrency, +}; +use orml_utilities::with_transaction_result; +use parity_scale_codec::Codec; +use sp_runtime::{ + traits::{CheckedSub, MaybeSerializeDeserialize, StaticLookup, Zero}, + DispatchError, DispatchResult, +}; +use sp_std::{fmt::Debug, marker, result}; + +#[frame_support::pallet] +pub mod module { + use super::*; + + // replace BalanceOf with AmountOf maybe? + // TODO: replace CurrencyIdOf with CurrencyId + + // pub(crate) type CurrencyIdOf = + // <::MultiCurrency as MultiCurrency<::AccountId>>::CurrencyId; + // pub(crate) type AmountOf = + // <::MultiCurrency as MultiCurrencyExtended<::AccountId>>::Amount; + // pub(crate) type ReserveIdentifierOf = <::MultiCurrency as NamedMultiReservableCurrency< + // ::AccountId, + // >>::ReserveIdentifier; + + #[pallet::config] + pub trait Config: frame_system::Config + pallet_assets::Config {} + + #[pallet::pallet] + pub struct Pallet(_); +} + +impl TransferAll for Pallet { + fn transfer_all(source: &T::AccountId, dest: &T::AccountId) -> DispatchResult { + with_transaction_result(|| { + pallet_assets::Pallet::::transfer_all(source, dest)?; + }) + } +} + +impl MultiCurrency for Pallet { + type Balance = ::Balance; + type CurrencyId = ::AssetId; + + fn minimum_balance(currency_id: Self::CurrencyId) -> Self::Balance { + pallet_assets::Pallet::::minimum_balance(currency_id) + } + + fn total_issuance(currency_id: Self::CurrencyId) -> Self::Balance { + pallet_assets::Pallet::::total_issuance(currency_id) + } + + fn total_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { + pallet_assets::Pallet::::total_balance(currency_id, who) + } + + fn free_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { + pallet_assets::Pallet::::free_balance(currency_id, who) + } + + fn ensure_can_withdraw( + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + pallet_assets::Pallet::::ensure_can_withdraw(currency_id, who, amount) + } + + fn transfer( + currency_id: Self::CurrencyId, + from: &T::AccountId, + to: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + pallet_assets::Pallet::::transfer(currency_id, from, to, amount) + } + + fn deposit( + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + pallet_assets::Pallet::::deposit(currency_id, who, amount) + } + + fn withdraw( + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + pallet_assets::Pallet::::withdraw(currency_id, who, amount) + } + + fn can_slash(currency_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance) -> bool { + pallet_assets::Pallet::::can_slash(currency_id, who, amount) + } + + fn slash( + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> Self::Balance { + pallet_assets::Pallet::::slash(currency_id, who, amount) + } +} + +impl MultiCurrencyExtended for Pallet { + type Amount = ::Balance; + + fn update_balance( + currency_id: Self::CurrencyId, + who: &T::AccountId, + by_amount: Self::Amount, + ) -> DispatchResult { + pallet_assets::Pallet::::update_balance(currency_id, who, by_amount) + } +} + +impl MultiLockableCurrency for Pallet { + type Moment = BlockNumberFor; + + fn set_lock( + lock_id: LockIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + pallet_assets::Pallet::::set_lock(lock_id, currency_id, who, amount) + } + + fn extend_lock( + lock_id: LockIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + amount: Self::Balance, + ) -> DispatchResult { + pallet_assets::Pallet::::extend_lock(lock_id, currency_id, who, amount) + } + + fn remove_lock( + lock_id: LockIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + ) -> DispatchResult { + pallet_assets::Pallet::::remove_lock(lock_id, currency_id, who) + } +} + +// TODO: use freeze, thaw, burn, and mint +// to fulfill the required functionality +impl MultiReservableCurrency for Pallet { + fn can_reserve( + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> bool { + pallet_assets::Pallet::::can_reserve(currency_id, who, value) + } + + fn slash_reserved( + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + pallet_assets::Pallet::::slash_reserved(currency_id, who, value) + } + + fn reserved_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { + pallet_assets::Pallet::::reserved_balance(currency_id, who) + } + + fn reserve( + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> DispatchResult { + pallet_assets::Pallet::::reserve(currency_id, who, value) + } + + fn unreserve( + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + pallet_assets::Pallet::::unreserve(currency_id, who, value) + } + + fn repatriate_reserved( + currency_id: Self::CurrencyId, + slashed: &T::AccountId, + beneficiary: &T::AccountId, + value: Self::Balance, + status: BalanceStatus, + ) -> result::Result { + pallet_assets::Pallet::::repatriate_reserved( + currency_id, + slashed, + beneficiary, + value, + status, + ) + } +} + +impl NamedMultiReservableCurrency for Pallet { + type ReserveIdentifier = (); + + fn slash_reserved_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + pallet_assets::Pallet::::slash_reserved_named(id, currency_id, who, value) + } + + fn reserved_balance_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + ) -> Self::Balance { + pallet_assets::Pallet::::reserved_balance_named(id, currency_id, who) + } + + fn reserve_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> DispatchResult { + pallet_assets::Pallet::::reserve_named(id, currency_id, who, value) + } + + fn unreserve_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + pallet_assets::Pallet::::unreserve_named(id, currency_id, who, value) + } + + fn repatriate_reserved_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + slashed: &T::AccountId, + beneficiary: &T::AccountId, + value: Self::Balance, + status: BalanceStatus, + ) -> result::Result { + pallet_assets::Pallet::::repatriate_reserved_named( + id, + currency_id, + slashed, + beneficiary, + value, + status, + ) + } +} diff --git a/evm-template/pallets/multicurrency/src/lib.rs b/evm-template/pallets/multicurrency/src/lib.rs deleted file mode 100644 index 1e8caeef..00000000 --- a/evm-template/pallets/multicurrency/src/lib.rs +++ /dev/null @@ -1,412 +0,0 @@ -// TODO: make issue to upstream as follow-up to this PR -// This pallet sensibly routes asset operation execution to pallet-balances for the native asset and to pallet-assets for foreign assets. -// -// The specific motivaton of this pallet was to satisfy the trait bounds of orml_currencues::Config::MultiCurrency such that `orml_currencies` routes asset operation execution to pallet-balances for the native asset and pallet-assets for foreign assets. - -#![cfg_attr(not(feature = "std"), no_std)] -#![allow(clippy::unused_unit)] - -use frame_support::{ - pallet_prelude::*, - traits::{ - Currency as PalletCurrency, ExistenceRequirement, Get, Imbalance, - LockableCurrency as PalletLockableCurrency, - NamedReservableCurrency as PalletNamedReservableCurrency, - ReservableCurrency as PalletReservableCurrency, WithdrawReasons, - }, -}; -use frame_system::{ensure_root, ensure_signed, pallet_prelude::*}; -pub use module::*; -use orml_traits::{ - arithmetic::{Signed, SimpleArithmetic}, - currency::TransferAll, - BalanceStatus, BasicCurrency, BasicCurrencyExtended, BasicLockableCurrency, - BasicReservableCurrency, LockIdentifier, MultiCurrency, MultiCurrencyExtended, - MultiLockableCurrency, MultiReservableCurrency, NamedBasicReservableCurrency, - NamedMultiReservableCurrency, -}; -use orml_utilities::with_transaction_result; -use parity_scale_codec::Codec; -use sp_runtime::{ - traits::{CheckedSub, MaybeSerializeDeserialize, StaticLookup, Zero}, - DispatchError, DispatchResult, -}; -use sp_std::{fmt::Debug, marker, result}; - -#[frame_support::pallet] -pub mod module { - use super::*; - - pub(crate) type BalanceOf = as PalletCurrency< - ::AccountId, - >>::Balance; - // pub(crate) type CurrencyIdOf = - // <::MultiCurrency as MultiCurrency<::AccountId>>::CurrencyId; - // pub(crate) type AmountOf = - // <::MultiCurrency as MultiCurrencyExtended<::AccountId>>::Amount; - // pub(crate) type ReserveIdentifierOf = <::MultiCurrency as NamedMultiReservableCurrency< - // ::AccountId, - // >>::ReserveIdentifier; - - #[pallet::config] - pub trait Config: - frame_system::Config + pallet_assets::Config + pallet_balances::Config - { - // TODO: CurrencyId should be defined in runtime and only used here in a more generic way - type NativeCurrencyId: Get; - } - - #[pallet::pallet] - pub struct Pallet(_); -} - -impl TransferAll for Pallet { - fn transfer_all(source: &T::AccountId, dest: &T::AccountId) -> DispatchResult { - with_transaction_result(|| { - // transfer non-native free to dest - pallet_assets::Pallet::::transfer_all(source, dest)?; - - // transfer all free to dest - pallet_balances::Pallet::::transfer( - source, - dest, - pallet_balances::Pallet::::free_balance(source), - ExistenceRequirement::KeepAlive, - ) - }) - } -} - -impl MultiCurrency for Pallet { - type Balance = BalanceOf; - type CurrencyId = CurrencyIdOf; - - fn minimum_balance(currency_id: Self::CurrencyId) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::minimum_balance() - } else { - pallet_assets::Pallet::::minimum_balance(currency_id) - } - } - - fn total_issuance(currency_id: Self::CurrencyId) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::total_issuance() - } else { - pallet_assets::Pallet::::total_issuance(currency_id) - } - } - - fn total_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::total_balance(who) - } else { - pallet_assets::Pallet::::total_balance(currency_id, who) - } - } - - fn free_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::free_balance(who) - } else { - pallet_assets::Pallet::::free_balance(currency_id, who) - } - } - - fn ensure_can_withdraw( - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::ensure_can_withdraw(who, amount) - } else { - pallet_assets::Pallet::::ensure_can_withdraw(currency_id, who, amount) - } - } - - fn transfer( - currency_id: Self::CurrencyId, - from: &T::AccountId, - to: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - if amount.is_zero() || from == to { - return Ok(()); - } - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::transfer(from, to, amount) - } else { - pallet_assets::Pallet::::transfer(currency_id, from, to, amount) - } - } - - fn deposit( - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - if amount.is_zero() { - return Ok(()); - } - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::deposit(who, amount) - } else { - pallet_assets::Pallet::::deposit(currency_id, who, amount) - } - } - - fn withdraw( - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - if amount.is_zero() { - return Ok(()); - } - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::withdraw(who, amount) - } else { - pallet_assets::Pallet::::withdraw(currency_id, who, amount) - } - } - - fn can_slash(currency_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance) -> bool { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::can_slash(who, amount) - } else { - pallet_assets::Pallet::::can_slash(currency_id, who, amount) - } - } - - fn slash( - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::slash(who, amount) - } else { - pallet_assets::Pallet::::slash(currency_id, who, amount) - } - } -} -// TODO: implement MultiCurrency as well -impl MultiCurrencyExtended for Pallet { - type Amount = AmountOf; - - fn update_balance( - currency_id: Self::CurrencyId, - who: &T::AccountId, - by_amount: Self::Amount, - ) -> DispatchResult { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::update_balance(who, by_amount) - } else { - pallet_assets::Pallet::::update_balance(currency_id, who, by_amount) - } - } -} - -impl MultiLockableCurrency for Pallet { - type Moment = BlockNumberFor; - - fn set_lock( - lock_id: LockIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::set_lock(lock_id, who, amount) - } else { - pallet_assets::Pallet::::set_lock(lock_id, currency_id, who, amount) - } - } - - fn extend_lock( - lock_id: LockIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::extend_lock(lock_id, who, amount) - } else { - pallet_assets::Pallet::::extend_lock(lock_id, currency_id, who, amount) - } - } - - fn remove_lock( - lock_id: LockIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - ) -> DispatchResult { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::remove_lock(lock_id, who) - } else { - pallet_assets::Pallet::::remove_lock(lock_id, currency_id, who) - } - } -} - -impl MultiReservableCurrency for Pallet { - fn can_reserve( - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> bool { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::can_reserve(who, value) - } else { - pallet_assets::Pallet::::can_reserve(currency_id, who, value) - } - } - - fn slash_reserved( - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::slash_reserved(who, value) - } else { - pallet_assets::Pallet::::slash_reserved(currency_id, who, value) - } - } - - fn reserved_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::reserved_balance(who) - } else { - pallet_assets::Pallet::::reserved_balance(currency_id, who) - } - } - - fn reserve( - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> DispatchResult { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::reserve(who, value) - } else { - pallet_assets::Pallet::::reserve(currency_id, who, value) - } - } - - fn unreserve( - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::unreserve(who, value) - } else { - pallet_assets::Pallet::::unreserve(currency_id, who, value) - } - } - - fn repatriate_reserved( - currency_id: Self::CurrencyId, - slashed: &T::AccountId, - beneficiary: &T::AccountId, - value: Self::Balance, - status: BalanceStatus, - ) -> result::Result { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::repatriate_reserved(slashed, beneficiary, value, status) - } else { - pallet_assets::Pallet::::repatriate_reserved( - currency_id, - slashed, - beneficiary, - value, - status, - ) - } - } -} - -impl NamedMultiReservableCurrency for Pallet { - type ReserveIdentifier = ReserveIdentifierOf; - - fn slash_reserved_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::slash_reserved_named(id, who, value) - } else { - pallet_assets::Pallet::::slash_reserved_named(id, currency_id, who, value) - } - } - - fn reserved_balance_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - ) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::reserved_balance_named(id, who) - } else { - pallet_assets::Pallet::::reserved_balance_named(id, currency_id, who) - } - } - - fn reserve_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> DispatchResult { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::reserve_named(id, who, value) - } else { - pallet_assets::Pallet::::reserve_named(id, currency_id, who, value) - } - } - - fn unreserve_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::unreserve_named(id, who, value) - } else { - pallet_assets::Pallet::::unreserve_named(id, currency_id, who, value) - } - } - - fn repatriate_reserved_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - slashed: &T::AccountId, - beneficiary: &T::AccountId, - value: Self::Balance, - status: BalanceStatus, - ) -> result::Result { - if currency_id == T::GetNativeCurrencyId::get() { - pallet_balances::Pallet::::repatriate_reserved_named( - id, - slashed, - beneficiary, - value, - status, - ) - } else { - pallet_assets::Pallet::::repatriate_reserved_named( - id, - currency_id, - slashed, - beneficiary, - value, - status, - ) - } - } -} diff --git a/evm-template/runtime/Cargo.toml b/evm-template/runtime/Cargo.toml index 9da9206a..4d81c28d 100644 --- a/evm-template/runtime/Cargo.toml +++ b/evm-template/runtime/Cargo.toml @@ -90,7 +90,7 @@ evm = { workspace = true, features = ["with-codec"] } orml-currencies = { workspace = true } # Custom -pallet-multicurrency = { workspace = true } +pallet-multi-assets = { workspace = true } # HydraDX pallet-transaction-multi-payment = { workspace = true } @@ -128,7 +128,7 @@ std = [ "pallet-collator-selection/std", "pallet-conviction-voting/std", "pallet-message-queue/std", - "pallet-multicurrency/std", + "pallet-multi-assets/std", "pallet-multisig/std", "pallet-preimage/std", "pallet-proxy/std", @@ -220,7 +220,7 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-conviction-voting/try-runtime", "pallet-message-queue/try-runtime", - "pallet-multicurrency/try-runtime", + "pallet-multi-assets/try-runtime", "pallet-multisig/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", From f174246037350cda9dfaf29396d90e2284730d63 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 12:22:21 -0400 Subject: [PATCH 08/17] init impl transfer all for pallet assets --- evm-template/pallets/multi-assets/src/lib.rs | 23 ++++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/evm-template/pallets/multi-assets/src/lib.rs b/evm-template/pallets/multi-assets/src/lib.rs index 48e98d9a..42f8b720 100644 --- a/evm-template/pallets/multi-assets/src/lib.rs +++ b/evm-template/pallets/multi-assets/src/lib.rs @@ -16,6 +16,7 @@ pub use module::*; use orml_traits::{ arithmetic::{Signed, SimpleArithmetic}, currency::TransferAll, + fungibles::{Balanced, Inspect, InspectEnumerable}, BalanceStatus, BasicCurrency, BasicCurrencyExtended, BasicLockableCurrency, BasicReservableCurrency, LockIdentifier, MultiCurrency, MultiCurrencyExtended, MultiLockableCurrency, MultiReservableCurrency, NamedBasicReservableCurrency, @@ -29,21 +30,15 @@ use sp_runtime::{ }; use sp_std::{fmt::Debug, marker, result}; +// Errors: +// - the trait `std::marker::Copy` is not implemented for `::AssetId` --> patch: convert using associated type) +// - the trait `orml_traits::arithmetic::Signed` is not implemented for `::Balance` --> look ar Signed definition to decide what to do +// - pallet_assets has transfer, not transfer_all so it must be implemented here or upstream --> iterate through all asset_ids held by the owner? + #[frame_support::pallet] pub mod module { use super::*; - // replace BalanceOf with AmountOf maybe? - // TODO: replace CurrencyIdOf with CurrencyId - - // pub(crate) type CurrencyIdOf = - // <::MultiCurrency as MultiCurrency<::AccountId>>::CurrencyId; - // pub(crate) type AmountOf = - // <::MultiCurrency as MultiCurrencyExtended<::AccountId>>::Amount; - // pub(crate) type ReserveIdentifierOf = <::MultiCurrency as NamedMultiReservableCurrency< - // ::AccountId, - // >>::ReserveIdentifier; - #[pallet::config] pub trait Config: frame_system::Config + pallet_assets::Config {} @@ -54,7 +49,11 @@ pub mod module { impl TransferAll for Pallet { fn transfer_all(source: &T::AccountId, dest: &T::AccountId) -> DispatchResult { with_transaction_result(|| { - pallet_assets::Pallet::::transfer_all(source, dest)?; + for asset_id in pallet_assets::Pallet::::asset_ids() { + if let Some(balance) = pallet_assets::Pallet::::maybe_balance(asset_id, source) { + pallet_assets::Pallet::::transfer(asset_id, source, dest, balance)?; + } + } }) } } From 24933671466d57b781ab45c9cbaa59392bf0ecda Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 12:28:00 -0400 Subject: [PATCH 09/17] fix imports --- evm-template/pallets/multi-assets/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evm-template/pallets/multi-assets/src/lib.rs b/evm-template/pallets/multi-assets/src/lib.rs index 42f8b720..b3ec60f1 100644 --- a/evm-template/pallets/multi-assets/src/lib.rs +++ b/evm-template/pallets/multi-assets/src/lib.rs @@ -5,6 +5,7 @@ use frame_support::{ pallet_prelude::*, traits::{ + fungibles::{Balanced, Inspect, InspectEnumerable}, Currency as PalletCurrency, ExistenceRequirement, Get, Imbalance, LockableCurrency as PalletLockableCurrency, NamedReservableCurrency as PalletNamedReservableCurrency, @@ -16,7 +17,6 @@ pub use module::*; use orml_traits::{ arithmetic::{Signed, SimpleArithmetic}, currency::TransferAll, - fungibles::{Balanced, Inspect, InspectEnumerable}, BalanceStatus, BasicCurrency, BasicCurrencyExtended, BasicLockableCurrency, BasicReservableCurrency, LockIdentifier, MultiCurrency, MultiCurrencyExtended, MultiLockableCurrency, MultiReservableCurrency, NamedBasicReservableCurrency, From aaee3cb92e3ff71eef039f43bc0f2a35b6494fe5 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 12:30:20 -0400 Subject: [PATCH 10/17] clean --- evm-template/pallets/multi-assets/src/lib.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/evm-template/pallets/multi-assets/src/lib.rs b/evm-template/pallets/multi-assets/src/lib.rs index b3ec60f1..2a54685d 100644 --- a/evm-template/pallets/multi-assets/src/lib.rs +++ b/evm-template/pallets/multi-assets/src/lib.rs @@ -30,11 +30,6 @@ use sp_runtime::{ }; use sp_std::{fmt::Debug, marker, result}; -// Errors: -// - the trait `std::marker::Copy` is not implemented for `::AssetId` --> patch: convert using associated type) -// - the trait `orml_traits::arithmetic::Signed` is not implemented for `::Balance` --> look ar Signed definition to decide what to do -// - pallet_assets has transfer, not transfer_all so it must be implemented here or upstream --> iterate through all asset_ids held by the owner? - #[frame_support::pallet] pub mod module { use super::*; @@ -59,7 +54,9 @@ impl TransferAll for Pallet { } impl MultiCurrency for Pallet { + // the trait `orml_traits::arithmetic::Signed` is not implemented for `::Balance` type Balance = ::Balance; + // the trait `std::marker::Copy` is not implemented for `::AssetId` type CurrencyId = ::AssetId; fn minimum_balance(currency_id: Self::CurrencyId) -> Self::Balance { From bbb0cb7fba52f74575ce03f7047faa23d75a7c29 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 16:03:33 -0400 Subject: [PATCH 11/17] start using config types to workaround pallet asset trait bound incompatibility with orml currencies --- evm-template/pallets/multi-assets/src/lib.rs | 91 +++++++++++++++----- 1 file changed, 69 insertions(+), 22 deletions(-) diff --git a/evm-template/pallets/multi-assets/src/lib.rs b/evm-template/pallets/multi-assets/src/lib.rs index 2a54685d..4b25566d 100644 --- a/evm-template/pallets/multi-assets/src/lib.rs +++ b/evm-template/pallets/multi-assets/src/lib.rs @@ -1,11 +1,15 @@ -//! This pallet implements MultiCurrency trait bounds for pallet-assets +//! This pallet implements MultiCurrency trait bounds for pallet-assets thereby enable assignment in an orml_currencies Config alongside pallet-balances. +//! The resulting config is different from the happy path config for orml_currencies::Config::MultiCurrency which uses orml_tokens instead of pallet-assets for orml_currencies::Config::MultiCurrency. +//! Associated types are used to satisfy the orml_currencies strict(er) trait bounds with pallet_asset::Config (more) general associated types. +//! This pallet's associated types may be removed once upstream compatibility between orml_currencies and pallet_assets is improved. #![cfg_attr(not(feature = "std"), no_std)] #![allow(clippy::unused_unit)] use frame_support::{ pallet_prelude::*, traits::{ - fungibles::{Balanced, Inspect, InspectEnumerable}, + fungibles::{Balanced, Inspect, InspectEnumerable, Mutate}, + tokens::Preservation, Currency as PalletCurrency, ExistenceRequirement, Get, Imbalance, LockableCurrency as PalletLockableCurrency, NamedReservableCurrency as PalletNamedReservableCurrency, @@ -23,9 +27,9 @@ use orml_traits::{ NamedMultiReservableCurrency, }; use orml_utilities::with_transaction_result; -use parity_scale_codec::Codec; +use parity_scale_codec::FullCodec; use sp_runtime::{ - traits::{CheckedSub, MaybeSerializeDeserialize, StaticLookup, Zero}, + traits::{CheckedSub, Convert, MaybeSerializeDeserialize, StaticLookup, Zero}, DispatchError, DispatchResult, }; use sp_std::{fmt::Debug, marker, result}; @@ -35,7 +39,36 @@ pub mod module { use super::*; #[pallet::config] - pub trait Config: frame_system::Config + pallet_assets::Config {} + pub trait Config: frame_system::Config + pallet_assets::Config { + // LocalAssetId + // TODO: remove once Copy trait bound is removed from orml_currencies::CurrencyId or Clone trait bound is removed from pallet_assets::AssetId + // - also remove `.into()`s throughout + type Id: FullCodec + + Eq + + PartialEq + + Copy + + MaybeSerializeDeserialize + + Debug + + scale_info::TypeInfo + + MaxEncodedLen + + Into + + From; + // LocalBalance + // TODO: remove once `orml_traits::arithmetic::Signed` is implemented and/or enforced as a trait bound for `::Balance` + // - also remove `.into()`s throughout + type OrmlBalance: FullCodec + + Eq + + PartialEq + + Copy + + MaybeSerializeDeserialize + + Debug + + scale_info::TypeInfo + + MaxEncodedLen + + orml_traits::arithmetic::Signed + + frame_support::traits::tokens::Balance + + Into + + From; + } #[pallet::pallet] pub struct Pallet(_); @@ -44,35 +77,42 @@ pub mod module { impl TransferAll for Pallet { fn transfer_all(source: &T::AccountId, dest: &T::AccountId) -> DispatchResult { with_transaction_result(|| { - for asset_id in pallet_assets::Pallet::::asset_ids() { - if let Some(balance) = pallet_assets::Pallet::::maybe_balance(asset_id, source) { - pallet_assets::Pallet::::transfer(asset_id, source, dest, balance)?; + for id in pallet_assets::Pallet::::asset_ids() { + if let Some(balance) = pallet_assets::Pallet::::maybe_balance(id.clone(), source) + { + as Mutate>::transfer( + id, + source, + dest, + balance, + Preservation::Preserve, + ) + .map(|_| ())?; } } + Ok(()) }) } } impl MultiCurrency for Pallet { - // the trait `orml_traits::arithmetic::Signed` is not implemented for `::Balance` - type Balance = ::Balance; - // the trait `std::marker::Copy` is not implemented for `::AssetId` - type CurrencyId = ::AssetId; + type Balance = T::OrmlBalance; + type CurrencyId = T::Id; fn minimum_balance(currency_id: Self::CurrencyId) -> Self::Balance { - pallet_assets::Pallet::::minimum_balance(currency_id) + pallet_assets::Pallet::::minimum_balance(currency_id.into()).into() } fn total_issuance(currency_id: Self::CurrencyId) -> Self::Balance { - pallet_assets::Pallet::::total_issuance(currency_id) + pallet_assets::Pallet::::total_issuance(currency_id.into()).into() } fn total_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { - pallet_assets::Pallet::::total_balance(currency_id, who) + pallet_assets::Pallet::::total_balance(currency_id.into(), who).into() } fn free_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { - pallet_assets::Pallet::::free_balance(currency_id, who) + pallet_assets::Pallet::::balance(currency_id.into(), who).into() } fn ensure_can_withdraw( @@ -89,7 +129,14 @@ impl MultiCurrency for Pallet { to: &T::AccountId, amount: Self::Balance, ) -> DispatchResult { - pallet_assets::Pallet::::transfer(currency_id, from, to, amount) + as Mutate>::transfer( + currency_id.into(), + from, + to, + amount.into(), + Preservation::Preserve, + ) + .map(|_| ()) } fn deposit( @@ -97,7 +144,7 @@ impl MultiCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult { - pallet_assets::Pallet::::deposit(currency_id, who, amount) + pallet_assets::Pallet::::deposit(currency_id.into(), who, amount.into()) } fn withdraw( @@ -105,11 +152,11 @@ impl MultiCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult { - pallet_assets::Pallet::::withdraw(currency_id, who, amount) + pallet_assets::Pallet::::withdraw(currency_id.into(), who, amount.into()).map(|_| ()) } fn can_slash(currency_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance) -> bool { - pallet_assets::Pallet::::can_slash(currency_id, who, amount) + pallet_assets::Pallet::::can_slash(currency_id.into(), who, amount) } fn slash( @@ -117,12 +164,12 @@ impl MultiCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> Self::Balance { - pallet_assets::Pallet::::slash(currency_id, who, amount) + pallet_assets::Pallet::::slash(currency_id.into(), who, amount.into()) } } impl MultiCurrencyExtended for Pallet { - type Amount = ::Balance; + type Amount = T::OrmlBalance; fn update_balance( currency_id: Self::CurrencyId, From 03c2ad5806bef09b819d509fbf57317e2349e7b5 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 16:41:22 -0400 Subject: [PATCH 12/17] focus on mapping api to use pallet assets mutate --- evm-template/pallets/multi-assets/src/lib.rs | 138 +++++++++++-------- 1 file changed, 78 insertions(+), 60 deletions(-) diff --git a/evm-template/pallets/multi-assets/src/lib.rs b/evm-template/pallets/multi-assets/src/lib.rs index 4b25566d..28f67610 100644 --- a/evm-template/pallets/multi-assets/src/lib.rs +++ b/evm-template/pallets/multi-assets/src/lib.rs @@ -9,7 +9,7 @@ use frame_support::{ pallet_prelude::*, traits::{ fungibles::{Balanced, Inspect, InspectEnumerable, Mutate}, - tokens::Preservation, + tokens::{Fortitude, Precision, Preservation}, Currency as PalletCurrency, ExistenceRequirement, Get, Imbalance, LockableCurrency as PalletLockableCurrency, NamedReservableCurrency as PalletNamedReservableCurrency, @@ -120,7 +120,9 @@ impl MultiCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult { - pallet_assets::Pallet::::ensure_can_withdraw(currency_id, who, amount) + pallet_assets::Pallet::::can_withdraw(currency_id.into(), who, amount.into()) + .into_result(true) + .map(|_| ()) } fn transfer( @@ -144,7 +146,7 @@ impl MultiCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult { - pallet_assets::Pallet::::deposit(currency_id.into(), who, amount.into()) + pallet_assets::Pallet::::mint_into(currency_id.into(), who, amount.into()).map(|_| ()) } fn withdraw( @@ -152,7 +154,14 @@ impl MultiCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult { - pallet_assets::Pallet::::withdraw(currency_id.into(), who, amount.into()).map(|_| ()) + pallet_assets::Pallet::::burn_from( + currency_id.into(), + who, + amount.into(), + Precision::BestEffort, + Fortitude::Force, + ) + .map(|_| ()) } fn can_slash(currency_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance) -> bool { @@ -218,6 +227,7 @@ impl MultiReservableCurrency for Pallet { who: &T::AccountId, value: Self::Balance, ) -> bool { + // can_freeze pallet_assets::Pallet::::can_reserve(currency_id, who, value) } @@ -226,10 +236,12 @@ impl MultiReservableCurrency for Pallet { who: &T::AccountId, value: Self::Balance, ) -> Self::Balance { + // unfreeze + burn pallet_assets::Pallet::::slash_reserved(currency_id, who, value) } fn reserved_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { + // frozen_balance pallet_assets::Pallet::::reserved_balance(currency_id, who) } @@ -238,6 +250,7 @@ impl MultiReservableCurrency for Pallet { who: &T::AccountId, value: Self::Balance, ) -> DispatchResult { + // freeze pallet_assets::Pallet::::reserve(currency_id, who, value) } @@ -246,6 +259,7 @@ impl MultiReservableCurrency for Pallet { who: &T::AccountId, value: Self::Balance, ) -> Self::Balance { + // thaw pallet_assets::Pallet::::unreserve(currency_id, who, value) } @@ -256,6 +270,8 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, status: BalanceStatus, ) -> result::Result { + // unfreeze from slashed + // transfer to beneficiary pallet_assets::Pallet::::repatriate_reserved( currency_id, slashed, @@ -266,59 +282,61 @@ impl MultiReservableCurrency for Pallet { } } -impl NamedMultiReservableCurrency for Pallet { - type ReserveIdentifier = (); - - fn slash_reserved_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - pallet_assets::Pallet::::slash_reserved_named(id, currency_id, who, value) - } - - fn reserved_balance_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - ) -> Self::Balance { - pallet_assets::Pallet::::reserved_balance_named(id, currency_id, who) - } - - fn reserve_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> DispatchResult { - pallet_assets::Pallet::::reserve_named(id, currency_id, who, value) - } - - fn unreserve_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - pallet_assets::Pallet::::unreserve_named(id, currency_id, who, value) - } - - fn repatriate_reserved_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - slashed: &T::AccountId, - beneficiary: &T::AccountId, - value: Self::Balance, - status: BalanceStatus, - ) -> result::Result { - pallet_assets::Pallet::::repatriate_reserved_named( - id, - currency_id, - slashed, - beneficiary, - value, - status, - ) - } -} +// check what ReserveIdentifier is for orml_tokens::Config to determine +// what needs to be implemented here +// we may need to store named reserves in a storage map on top of pallet-assets +// impl NamedMultiReservableCurrency for Pallet { +// type ReserveIdentifier = (); + +// fn slash_reserved_named( +// _id: &Self::ReserveIdentifier, +// currency_id: Self::CurrencyId, +// who: &T::AccountId, +// value: Self::Balance, +// ) -> Self::Balance { +// Self::slash_reserved(currency_id, who, value) +// } + +// fn reserved_balance_named( +// id: &Self::ReserveIdentifier, +// currency_id: Self::CurrencyId, +// who: &T::AccountId, +// ) -> Self::Balance { +// Self::reserved_balance(currency_id, who) +// } + +// fn reserve_named( +// id: &Self::ReserveIdentifier, +// currency_id: Self::CurrencyId, +// who: &T::AccountId, +// value: Self::Balance, +// ) -> DispatchResult { +// Self::reserve(currency_id, who, value) +// } + +// fn unreserve_named( +// id: &Self::ReserveIdentifier, +// currency_id: Self::CurrencyId, +// who: &T::AccountId, +// value: Self::Balance, +// ) -> Self::Balance { +// Self::unreserve(id, currency_id, who, value) +// } + +// fn repatriate_reserved_named( +// id: &Self::ReserveIdentifier, +// currency_id: Self::CurrencyId, +// slashed: &T::AccountId, +// beneficiary: &T::AccountId, +// value: Self::Balance, +// status: BalanceStatus, +// ) -> result::Result { +// Self::repatriate_reserved( +// currency_id, +// slashed, +// beneficiary, +// value, +// status, +// ) +// } +// } From 89eecd2496b70626fd20d690bad7f9a0a8be98bd Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 18:04:46 -0400 Subject: [PATCH 13/17] pallet compiles unfinished --- evm-template/pallets/multi-assets/src/lib.rs | 158 ++++++++++--------- 1 file changed, 80 insertions(+), 78 deletions(-) diff --git a/evm-template/pallets/multi-assets/src/lib.rs b/evm-template/pallets/multi-assets/src/lib.rs index 28f67610..77bfe0b5 100644 --- a/evm-template/pallets/multi-assets/src/lib.rs +++ b/evm-template/pallets/multi-assets/src/lib.rs @@ -72,6 +72,11 @@ pub mod module { #[pallet::pallet] pub struct Pallet(_); + + #[pallet::error] + pub enum Error { + Unimplemented, + } } impl TransferAll for Pallet { @@ -165,7 +170,7 @@ impl MultiCurrency for Pallet { } fn can_slash(currency_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance) -> bool { - pallet_assets::Pallet::::can_slash(currency_id.into(), who, amount) + Self::ensure_can_withdraw(currency_id, who, amount).is_ok() } fn slash( @@ -173,19 +178,33 @@ impl MultiCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> Self::Balance { - pallet_assets::Pallet::::slash(currency_id.into(), who, amount.into()) + pallet_assets::Pallet::::burn_from( + currency_id.into(), + who, + amount.into(), + Precision::BestEffort, + Fortitude::Force, + ) + .unwrap_or(Default::default()) + .into() } } impl MultiCurrencyExtended for Pallet { type Amount = T::OrmlBalance; + // ~= T::Amount in orml_tokens + fn update_balance( currency_id: Self::CurrencyId, who: &T::AccountId, by_amount: Self::Amount, ) -> DispatchResult { - pallet_assets::Pallet::::update_balance(currency_id, who, by_amount) + if by_amount.is_positive() { + Self::deposit(currency_id, who, by_amount) + } else { + Self::withdraw(currency_id, who, by_amount).map(|_| ()) + } } } @@ -198,7 +217,7 @@ impl MultiLockableCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult { - pallet_assets::Pallet::::set_lock(lock_id, currency_id, who, amount) + Err(Error::::Unimplemented.into()) } fn extend_lock( @@ -207,7 +226,7 @@ impl MultiLockableCurrency for Pallet { who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult { - pallet_assets::Pallet::::extend_lock(lock_id, currency_id, who, amount) + Err(Error::::Unimplemented.into()) } fn remove_lock( @@ -215,12 +234,10 @@ impl MultiLockableCurrency for Pallet { currency_id: Self::CurrencyId, who: &T::AccountId, ) -> DispatchResult { - pallet_assets::Pallet::::remove_lock(lock_id, currency_id, who) + Err(Error::::Unimplemented.into()) } } -// TODO: use freeze, thaw, burn, and mint -// to fulfill the required functionality impl MultiReservableCurrency for Pallet { fn can_reserve( currency_id: Self::CurrencyId, @@ -228,7 +245,7 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, ) -> bool { // can_freeze - pallet_assets::Pallet::::can_reserve(currency_id, who, value) + false } fn slash_reserved( @@ -237,12 +254,12 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, ) -> Self::Balance { // unfreeze + burn - pallet_assets::Pallet::::slash_reserved(currency_id, who, value) + Default::default() } fn reserved_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { // frozen_balance - pallet_assets::Pallet::::reserved_balance(currency_id, who) + Default::default() } fn reserve( @@ -251,7 +268,7 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, ) -> DispatchResult { // freeze - pallet_assets::Pallet::::reserve(currency_id, who, value) + Err(Error::::Unimplemented.into()) } fn unreserve( @@ -260,7 +277,7 @@ impl MultiReservableCurrency for Pallet { value: Self::Balance, ) -> Self::Balance { // thaw - pallet_assets::Pallet::::unreserve(currency_id, who, value) + Default::default() } fn repatriate_reserved( @@ -272,71 +289,56 @@ impl MultiReservableCurrency for Pallet { ) -> result::Result { // unfreeze from slashed // transfer to beneficiary - pallet_assets::Pallet::::repatriate_reserved( - currency_id, - slashed, - beneficiary, - value, - status, - ) + Err(Error::::Unimplemented.into()) } } -// check what ReserveIdentifier is for orml_tokens::Config to determine -// what needs to be implemented here -// we may need to store named reserves in a storage map on top of pallet-assets -// impl NamedMultiReservableCurrency for Pallet { -// type ReserveIdentifier = (); - -// fn slash_reserved_named( -// _id: &Self::ReserveIdentifier, -// currency_id: Self::CurrencyId, -// who: &T::AccountId, -// value: Self::Balance, -// ) -> Self::Balance { -// Self::slash_reserved(currency_id, who, value) -// } - -// fn reserved_balance_named( -// id: &Self::ReserveIdentifier, -// currency_id: Self::CurrencyId, -// who: &T::AccountId, -// ) -> Self::Balance { -// Self::reserved_balance(currency_id, who) -// } - -// fn reserve_named( -// id: &Self::ReserveIdentifier, -// currency_id: Self::CurrencyId, -// who: &T::AccountId, -// value: Self::Balance, -// ) -> DispatchResult { -// Self::reserve(currency_id, who, value) -// } - -// fn unreserve_named( -// id: &Self::ReserveIdentifier, -// currency_id: Self::CurrencyId, -// who: &T::AccountId, -// value: Self::Balance, -// ) -> Self::Balance { -// Self::unreserve(id, currency_id, who, value) -// } - -// fn repatriate_reserved_named( -// id: &Self::ReserveIdentifier, -// currency_id: Self::CurrencyId, -// slashed: &T::AccountId, -// beneficiary: &T::AccountId, -// value: Self::Balance, -// status: BalanceStatus, -// ) -> result::Result { -// Self::repatriate_reserved( -// currency_id, -// slashed, -// beneficiary, -// value, -// status, -// ) -// } -// } +impl NamedMultiReservableCurrency for Pallet { + type ReserveIdentifier = (); + + fn slash_reserved_named( + _id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + Default::default() + } + + fn reserved_balance_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + ) -> Self::Balance { + Default::default() + } + + fn reserve_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> DispatchResult { + Err(Error::::Unimplemented.into()) + } + + fn unreserve_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + who: &T::AccountId, + value: Self::Balance, + ) -> Self::Balance { + Default::default() + } + + fn repatriate_reserved_named( + id: &Self::ReserveIdentifier, + currency_id: Self::CurrencyId, + slashed: &T::AccountId, + beneficiary: &T::AccountId, + value: Self::Balance, + status: BalanceStatus, + ) -> result::Result { + Err(Error::::Unimplemented.into()) + } +} From d86188d2ec60add84d2dc5ff7af2cf02003ad061 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 20:17:55 -0400 Subject: [PATCH 14/17] orml tokens and orml currencies configs --- evm-template/Cargo.lock | 56 +-- evm-template/Cargo.toml | 11 +- evm-template/pallets/multi-assets/Cargo.toml | 47 --- evm-template/pallets/multi-assets/src/lib.rs | 344 ------------------- evm-template/runtime/Cargo.toml | 17 +- evm-template/runtime/src/defi.rs | 59 ++-- evm-template/runtime/src/lib.rs | 4 +- 7 files changed, 77 insertions(+), 461 deletions(-) delete mode 100644 evm-template/pallets/multi-assets/Cargo.toml delete mode 100644 evm-template/pallets/multi-assets/src/lib.rs diff --git a/evm-template/Cargo.lock b/evm-template/Cargo.lock index 79d9fbbb..2ed87b24 100644 --- a/evm-template/Cargo.lock +++ b/evm-template/Cargo.lock @@ -6270,6 +6270,23 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", ] +[[package]] +name = "orml-tokens" +version = "0.10.0" +source = "git+https://github.com/OpenZeppelin/open-runtime-module-library.git?branch=polkadot-v1.7.0#9a6c2fdcd13bae0d921e5c33e83eabbc89a6a716" +dependencies = [ + "frame-support", + "frame-system", + "log", + "orml-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", +] + [[package]] name = "orml-traits" version = "0.10.0" @@ -6890,24 +6907,6 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", ] -[[package]] -name = "pallet-multi-assets" -version = "0.1.0" -dependencies = [ - "frame-support", - "frame-system", - "orml-traits", - "orml-utilities", - "pallet-assets", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0)", -] - [[package]] name = "pallet-multisig" version = "28.0.0" @@ -7587,6 +7586,8 @@ dependencies = [ "hex-literal 0.4.1", "log", "orml-currencies", + "orml-tokens", + "orml-traits", "pallet-assets", "pallet-aura", "pallet-authorship", @@ -7594,7 +7595,6 @@ dependencies = [ "pallet-collator-selection", "pallet-conviction-voting", "pallet-message-queue", - "pallet-multi-assets", "pallet-multisig", "pallet-preimage", "pallet-proxy", @@ -12169,7 +12169,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -12231,7 +12231,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" dependencies = [ "proc-macro2", "quote", @@ -12252,7 +12252,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" dependencies = [ "environmental", "parity-scale-codec", @@ -12470,7 +12470,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -12502,7 +12502,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" dependencies = [ "Inflector", "expander 2.1.0", @@ -12595,7 +12595,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.7.0#2fe [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" [[package]] name = "sp-storage" @@ -12613,7 +12613,7 @@ dependencies = [ [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12650,7 +12650,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" dependencies = [ "parity-scale-codec", "tracing", @@ -12750,7 +12750,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#e192b764971f99975e876380f9ebbf2c08f0c17d" +source = "git+https://github.com/paritytech/polkadot-sdk#d6cf147c1bda601e811bf5813b0d46ca1c8ad9b9" dependencies = [ "impl-trait-for-tuples", "log", diff --git a/evm-template/Cargo.toml b/evm-template/Cargo.toml index 7b77fe78..6683c814 100644 --- a/evm-template/Cargo.toml +++ b/evm-template/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = [ "node", "pallets/multi-assets", "runtime", "template-fuzzer" ] +members = [ "node", "runtime", "template-fuzzer" ] resolver = "2" [workspace.package] @@ -129,13 +129,13 @@ parachain-info = { package = "staging-parachain-info", git = "https://github.com parachains-common = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-v1.7.0" } # Frontier -fp-account = { git = "https://github.com/OpenZeppelin/frontier", branch = "polkadot-v1.7.0", default-features = false, features = [ "serde" ] } evm = { version = "0.41.1", default-features = false } +fp-account = { git = "https://github.com/OpenZeppelin/frontier", branch = "polkadot-v1.7.0", default-features = false, features = [ "serde" ] } # Open Runtime Module Library #orml-benchmarking = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } -orml-currencies = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } -#orml-tokens = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +orml-currencies = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } +orml-tokens = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } orml-traits = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } orml-utilities = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } #orml-vesting = { git = "https://github.com/OpenZeppelin/open-runtime-module-library.git", branch = "polkadot-v1.7.0", default-features = false } @@ -147,9 +147,6 @@ orml-utilities = { git = "https://github.com/OpenZeppelin/open-runtime-module-li # HydraDX pallet-transaction-multi-payment = { git = "https://github.com/OpenZeppelin/HydraDX-node", branch = "polkadot-v1.7.0", default-features = false } -# Custom -pallet-multi-assets = { path = "pallets/multi-assets", default-features = false } - # Fuzzer substrate-runtime-fuzzer = { git = "https://github.com/srlabs/substrate-runtime-fuzzer.git", default-features = false } ziggy = { version = "0.8", default-features = false } diff --git a/evm-template/pallets/multi-assets/Cargo.toml b/evm-template/pallets/multi-assets/Cargo.toml deleted file mode 100644 index c493bd46..00000000 --- a/evm-template/pallets/multi-assets/Cargo.toml +++ /dev/null @@ -1,47 +0,0 @@ -[package] -name = "pallet-multi-assets" -description = "Wrap pallet-assets to implement MultiCurrency trait bounds for orml-currencies" -authors = { workspace = true } -edition = { workspace = true } -license = { workspace = true } -repository = { workspace = true } -version = "0.1.0" - -[dependencies] -parity-scale-codec = { workspace = true } -scale-info = { workspace = true } -serde = { workspace = true, optional = true } - -frame-support = { workspace = true } -frame-system = { workspace = true } -pallet-assets = { workspace = true } -sp-io = { workspace = true } -sp-runtime = { workspace = true } -sp-std = { workspace = true } - -orml-traits = { workspace = true } -orml-utilities = { workspace = true } - -[dev-dependencies] -sp-core = { workspace = true, features = ["std"] } - -[features] -default = [ "std" ] -std = [ - "frame-support/std", - "frame-system/std", - "orml-traits/std", - "orml-utilities/std", - "pallet-assets/std", - "parity-scale-codec/std", - "scale-info/std", - "serde", - "sp-io/std", - "sp-runtime/std", - "sp-std/std", -] -try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", - "sp-runtime/try-runtime", -] diff --git a/evm-template/pallets/multi-assets/src/lib.rs b/evm-template/pallets/multi-assets/src/lib.rs deleted file mode 100644 index 77bfe0b5..00000000 --- a/evm-template/pallets/multi-assets/src/lib.rs +++ /dev/null @@ -1,344 +0,0 @@ -//! This pallet implements MultiCurrency trait bounds for pallet-assets thereby enable assignment in an orml_currencies Config alongside pallet-balances. -//! The resulting config is different from the happy path config for orml_currencies::Config::MultiCurrency which uses orml_tokens instead of pallet-assets for orml_currencies::Config::MultiCurrency. -//! Associated types are used to satisfy the orml_currencies strict(er) trait bounds with pallet_asset::Config (more) general associated types. -//! This pallet's associated types may be removed once upstream compatibility between orml_currencies and pallet_assets is improved. -#![cfg_attr(not(feature = "std"), no_std)] -#![allow(clippy::unused_unit)] - -use frame_support::{ - pallet_prelude::*, - traits::{ - fungibles::{Balanced, Inspect, InspectEnumerable, Mutate}, - tokens::{Fortitude, Precision, Preservation}, - Currency as PalletCurrency, ExistenceRequirement, Get, Imbalance, - LockableCurrency as PalletLockableCurrency, - NamedReservableCurrency as PalletNamedReservableCurrency, - ReservableCurrency as PalletReservableCurrency, WithdrawReasons, - }, -}; -use frame_system::{ensure_root, ensure_signed, pallet_prelude::*}; -pub use module::*; -use orml_traits::{ - arithmetic::{Signed, SimpleArithmetic}, - currency::TransferAll, - BalanceStatus, BasicCurrency, BasicCurrencyExtended, BasicLockableCurrency, - BasicReservableCurrency, LockIdentifier, MultiCurrency, MultiCurrencyExtended, - MultiLockableCurrency, MultiReservableCurrency, NamedBasicReservableCurrency, - NamedMultiReservableCurrency, -}; -use orml_utilities::with_transaction_result; -use parity_scale_codec::FullCodec; -use sp_runtime::{ - traits::{CheckedSub, Convert, MaybeSerializeDeserialize, StaticLookup, Zero}, - DispatchError, DispatchResult, -}; -use sp_std::{fmt::Debug, marker, result}; - -#[frame_support::pallet] -pub mod module { - use super::*; - - #[pallet::config] - pub trait Config: frame_system::Config + pallet_assets::Config { - // LocalAssetId - // TODO: remove once Copy trait bound is removed from orml_currencies::CurrencyId or Clone trait bound is removed from pallet_assets::AssetId - // - also remove `.into()`s throughout - type Id: FullCodec - + Eq - + PartialEq - + Copy - + MaybeSerializeDeserialize - + Debug - + scale_info::TypeInfo - + MaxEncodedLen - + Into - + From; - // LocalBalance - // TODO: remove once `orml_traits::arithmetic::Signed` is implemented and/or enforced as a trait bound for `::Balance` - // - also remove `.into()`s throughout - type OrmlBalance: FullCodec - + Eq - + PartialEq - + Copy - + MaybeSerializeDeserialize - + Debug - + scale_info::TypeInfo - + MaxEncodedLen - + orml_traits::arithmetic::Signed - + frame_support::traits::tokens::Balance - + Into - + From; - } - - #[pallet::pallet] - pub struct Pallet(_); - - #[pallet::error] - pub enum Error { - Unimplemented, - } -} - -impl TransferAll for Pallet { - fn transfer_all(source: &T::AccountId, dest: &T::AccountId) -> DispatchResult { - with_transaction_result(|| { - for id in pallet_assets::Pallet::::asset_ids() { - if let Some(balance) = pallet_assets::Pallet::::maybe_balance(id.clone(), source) - { - as Mutate>::transfer( - id, - source, - dest, - balance, - Preservation::Preserve, - ) - .map(|_| ())?; - } - } - Ok(()) - }) - } -} - -impl MultiCurrency for Pallet { - type Balance = T::OrmlBalance; - type CurrencyId = T::Id; - - fn minimum_balance(currency_id: Self::CurrencyId) -> Self::Balance { - pallet_assets::Pallet::::minimum_balance(currency_id.into()).into() - } - - fn total_issuance(currency_id: Self::CurrencyId) -> Self::Balance { - pallet_assets::Pallet::::total_issuance(currency_id.into()).into() - } - - fn total_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { - pallet_assets::Pallet::::total_balance(currency_id.into(), who).into() - } - - fn free_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { - pallet_assets::Pallet::::balance(currency_id.into(), who).into() - } - - fn ensure_can_withdraw( - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - pallet_assets::Pallet::::can_withdraw(currency_id.into(), who, amount.into()) - .into_result(true) - .map(|_| ()) - } - - fn transfer( - currency_id: Self::CurrencyId, - from: &T::AccountId, - to: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - as Mutate>::transfer( - currency_id.into(), - from, - to, - amount.into(), - Preservation::Preserve, - ) - .map(|_| ()) - } - - fn deposit( - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - pallet_assets::Pallet::::mint_into(currency_id.into(), who, amount.into()).map(|_| ()) - } - - fn withdraw( - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - pallet_assets::Pallet::::burn_from( - currency_id.into(), - who, - amount.into(), - Precision::BestEffort, - Fortitude::Force, - ) - .map(|_| ()) - } - - fn can_slash(currency_id: Self::CurrencyId, who: &T::AccountId, amount: Self::Balance) -> bool { - Self::ensure_can_withdraw(currency_id, who, amount).is_ok() - } - - fn slash( - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> Self::Balance { - pallet_assets::Pallet::::burn_from( - currency_id.into(), - who, - amount.into(), - Precision::BestEffort, - Fortitude::Force, - ) - .unwrap_or(Default::default()) - .into() - } -} - -impl MultiCurrencyExtended for Pallet { - type Amount = T::OrmlBalance; - - // ~= T::Amount in orml_tokens - - fn update_balance( - currency_id: Self::CurrencyId, - who: &T::AccountId, - by_amount: Self::Amount, - ) -> DispatchResult { - if by_amount.is_positive() { - Self::deposit(currency_id, who, by_amount) - } else { - Self::withdraw(currency_id, who, by_amount).map(|_| ()) - } - } -} - -impl MultiLockableCurrency for Pallet { - type Moment = BlockNumberFor; - - fn set_lock( - lock_id: LockIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - Err(Error::::Unimplemented.into()) - } - - fn extend_lock( - lock_id: LockIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - amount: Self::Balance, - ) -> DispatchResult { - Err(Error::::Unimplemented.into()) - } - - fn remove_lock( - lock_id: LockIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - ) -> DispatchResult { - Err(Error::::Unimplemented.into()) - } -} - -impl MultiReservableCurrency for Pallet { - fn can_reserve( - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> bool { - // can_freeze - false - } - - fn slash_reserved( - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - // unfreeze + burn - Default::default() - } - - fn reserved_balance(currency_id: Self::CurrencyId, who: &T::AccountId) -> Self::Balance { - // frozen_balance - Default::default() - } - - fn reserve( - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> DispatchResult { - // freeze - Err(Error::::Unimplemented.into()) - } - - fn unreserve( - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - // thaw - Default::default() - } - - fn repatriate_reserved( - currency_id: Self::CurrencyId, - slashed: &T::AccountId, - beneficiary: &T::AccountId, - value: Self::Balance, - status: BalanceStatus, - ) -> result::Result { - // unfreeze from slashed - // transfer to beneficiary - Err(Error::::Unimplemented.into()) - } -} - -impl NamedMultiReservableCurrency for Pallet { - type ReserveIdentifier = (); - - fn slash_reserved_named( - _id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - Default::default() - } - - fn reserved_balance_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - ) -> Self::Balance { - Default::default() - } - - fn reserve_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> DispatchResult { - Err(Error::::Unimplemented.into()) - } - - fn unreserve_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - who: &T::AccountId, - value: Self::Balance, - ) -> Self::Balance { - Default::default() - } - - fn repatriate_reserved_named( - id: &Self::ReserveIdentifier, - currency_id: Self::CurrencyId, - slashed: &T::AccountId, - beneficiary: &T::AccountId, - value: Self::Balance, - status: BalanceStatus, - ) -> result::Result { - Err(Error::::Unimplemented.into()) - } -} diff --git a/evm-template/runtime/Cargo.toml b/evm-template/runtime/Cargo.toml index 4d81c28d..13736275 100644 --- a/evm-template/runtime/Cargo.toml +++ b/evm-template/runtime/Cargo.toml @@ -83,14 +83,13 @@ parachain-info = { workspace = true } parachains-common = { workspace = true } # Frontier +evm = { workspace = true, features = [ "with-codec" ] } fp-account = { workspace = true } -evm = { workspace = true, features = ["with-codec"] } # Open Runtime Module Library orml-currencies = { workspace = true } - -# Custom -pallet-multi-assets = { workspace = true } +orml-tokens = { workspace = true } +orml-traits = { workspace = true } # HydraDX pallet-transaction-multi-payment = { workspace = true } @@ -121,6 +120,9 @@ std = [ "frame-system/std", "frame-try-runtime?/std", "log/std", + "orml-currencies/std", + "orml-tokens/std", + "orml-traits/std", "pallet-assets/std", "pallet-aura/std", "pallet-authorship/std", @@ -128,7 +130,6 @@ std = [ "pallet-collator-selection/std", "pallet-conviction-voting/std", "pallet-message-queue/std", - "pallet-multi-assets/std", "pallet-multisig/std", "pallet-preimage/std", "pallet-proxy/std", @@ -137,9 +138,9 @@ std = [ "pallet-session/std", "pallet-sudo/std", "pallet-timestamp/std", + "pallet-transaction-multi-payment/std", "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", - "pallet-transaction-multi-payment/std", "pallet-treasury/std", "pallet-utility/std", "pallet-whitelist/std", @@ -166,7 +167,6 @@ std = [ "xcm-builder/std", "xcm-executor/std", "xcm/std", - 'orml-currencies/std', ] async-backing = [] @@ -220,7 +220,6 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-conviction-voting/try-runtime", "pallet-message-queue/try-runtime", - "pallet-multi-assets/try-runtime", "pallet-multisig/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", @@ -230,8 +229,8 @@ try-runtime = [ "pallet-session/try-runtime", "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", + "pallet-transaction-multi-payment/try-runtime", "pallet-transaction-payment/try-runtime", - "pallet-transaction-multi-payment/try-runtime", "pallet-treasury/try-runtime", "pallet-utility/try-runtime", "pallet-whitelist/try-runtime", diff --git a/evm-template/runtime/src/defi.rs b/evm-template/runtime/src/defi.rs index eb302654..1541454c 100644 --- a/evm-template/runtime/src/defi.rs +++ b/evm-template/runtime/src/defi.rs @@ -1,38 +1,47 @@ -use parity_scale_codec::{Decode, Encode}; -use scale_info::TypeInfo; +//! DeFi runtime configurations +use frame_support::parameter_types; +use orml_traits::parameter_type_with_key; -/// High-level currency categories supported on this chain -// TODO: add Erc20 variant like Moonbeam which calls contract_address in EVM via ERC 20 interface -#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] -pub enum CurrencyId { - // Our native token - Native, - // Assets representing other chain's native tokens - ForeignAsset(AssetId), -} +use super::{Balance, Balances, BlockNumber, Runtime, RuntimeEvent, Tokens}; + +pub type Amount = i128; +pub type AssetId = u32; parameter_types! { - pub const GetNativeCurrencyId: CurrencyId = CurrencyId::Native; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +parameter_type_with_key! { + pub ExistentialDeposits: |currency_id: AssetId| -> Balance { + Balance::default() + }; } -// TODO: keep custom pallet in pallets until successfull upstreams -// pa -// MultiCurrency trait bounds to satisfy with pallet to upstream -// TransferAll -// + MultiCurrencyExtended -// + MultiLockableCurrency -// + MultiReservableCurrency -// + NamedMultiReservableCurrency; +impl orml_tokens::Config for Runtime { + type Amount = Amount; + type Balance = Balance; + type CurrencyHooks = (); + type CurrencyId = AssetId; + type DustRemovalWhitelist = (); + type ExistentialDeposits = ExistentialDeposits; + type MaxLocks = MaxLocks; + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeEvent = RuntimeEvent; + type WeightInfo = (); +} + +parameter_types! { + pub const GetNativeCurrencyId: AssetId = 0u32; +} impl orml_currencies::Config for Runtime { type GetNativeCurrencyId = GetNativeCurrencyId; - // TODO: make this work or impl MultiCurrency trait for runtime using Assets + Balances - // > consider extracting this and other configs out into own defi file - type MultiCurrency = (); - // TODO: impl Assets + Balances for this functionality + type MultiCurrency = Tokens; type NativeCurrency = orml_currencies::BasicCurrencyAdapter; - type WeightInfo = (); // TODO: run weights for this runtime and use generated weights + type WeightInfo = (); // TODO: generate weights } // parameter_types! { diff --git a/evm-template/runtime/src/lib.rs b/evm-template/runtime/src/lib.rs index e845881b..b0c194db 100644 --- a/evm-template/runtime/src/lib.rs +++ b/evm-template/runtime/src/lib.rs @@ -829,6 +829,7 @@ construct_runtime!( // Monetary Balances: pallet_balances = 10, TransactionPayment: pallet_transaction_payment = 11, + // TODO: remove once orml_tokens working Assets: pallet_assets = 12, Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event} = 13, @@ -853,7 +854,8 @@ construct_runtime!( MessageQueue: pallet_message_queue = 33, // DeFi - Currencies: orml_currencies = 40, + Tokens: orml_tokens = 40, + Currencies: orml_currencies = 41, //MultiTransactionPayment: pallet_transaction_multi_payment = 36, } ); From a88cbe20bfe481f15bce6935483665bb63f84932 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 20:50:27 -0400 Subject: [PATCH 15/17] init tx multi payment config without route provider nor oracle price provider --- evm-template/runtime/src/defi.rs | 58 ++++++++++++++------------------ 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/evm-template/runtime/src/defi.rs b/evm-template/runtime/src/defi.rs index 1541454c..c75eec17 100644 --- a/evm-template/runtime/src/defi.rs +++ b/evm-template/runtime/src/defi.rs @@ -1,8 +1,11 @@ //! DeFi runtime configurations use frame_support::parameter_types; +use frame_system::EnsureRoot; use orml_traits::parameter_type_with_key; -use super::{Balance, Balances, BlockNumber, Runtime, RuntimeEvent, Tokens}; +use super::{ + Balance, Balances, BlockNumber, Currencies, Runtime, RuntimeEvent, Tokens, WeightToFee, +}; pub type Amount = i128; pub type AssetId = u32; @@ -44,35 +47,24 @@ impl orml_currencies::Config for Runtime { type WeightInfo = (); // TODO: generate weights } -// parameter_types! { -// // TODO: make sure this is Balances pallet AssetId everywhere else -// pub const NativeAssetId : AssetId = 0; -// } -////UNCOMMENT ONLY AFTER construct_runtime part uncommented -// impl pallet_transaction_multi_payment::Config for Runtime { -// type AcceptedCurrencyOrigin = EnsureRoot; -// // TODO: impl orml-currency to combine pallet-asset + pallet-balances -// // for a sensible MultiCurrency impl -// // or impl MultiCurrency by runtime using pallet-asset + pallet-balances -// type Currencies = Currencies; -// //Currencies -// // TODO: ensure matches EVM used in `pallet_evm` -// type EvmAssetId = evm::WethAssetId; -// type EvmPermit = evm::permit::EvmPermitHandler; -// // TODO: impl InspectEVMAccounts by Runtime in separate folder -// // because we do not require pallet-evm-accounts config -// type InspectEvmAccounts = (); -// //EVMAccounts -// //TODO -// type NativeAssetId = (); -// //NativeAssetId -// type OraclePriceProvider = (); -// //OraclePriceProvider; -// type RouteProvider = (); -// //Router; -// type RuntimeEvent = RuntimeEvent; -// type TryCallCurrency<'a> = pallet_transaction_multi_payment::TryCallCurrency; -// type WeightInfo = (); -// //TODO: run weights in context of this runtime, first add to benchmarking runtime config -// type WeightToFee = WeightToFee; -// } +impl pallet_transaction_multi_payment::Config for Runtime { + type AcceptedCurrencyOrigin = EnsureRoot; + type Currencies = Currencies; + // TODO: ensure matches EVM used in `pallet_evm` + type EvmAssetId = evm::WethAssetId; + type EvmPermit = evm::permit::EvmPermitHandler; + // TODO: impl InspectEVMAccounts by Runtime in separate folder + // because we do not require pallet-evm-accounts config + type InspectEvmAccounts = (); + //EVMAccounts + type NativeAssetId = GetNativeCurrencyId; + type OraclePriceProvider = (); + //OraclePriceProvider; + type RouteProvider = (); + //Router; + type RuntimeEvent = RuntimeEvent; + type TryCallCurrency<'a> = pallet_transaction_multi_payment::TryCallCurrency; + type WeightInfo = (); + //TODO: run weights in context of this runtime, first add to benchmarking runtime config + type WeightToFee = WeightToFee; +} From 4b2388c75d647248fadbb448790eb9e29708fae0 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Tue, 28 May 2024 20:51:45 -0400 Subject: [PATCH 16/17] fix --- evm-template/runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evm-template/runtime/src/lib.rs b/evm-template/runtime/src/lib.rs index b0c194db..853887d5 100644 --- a/evm-template/runtime/src/lib.rs +++ b/evm-template/runtime/src/lib.rs @@ -856,7 +856,7 @@ construct_runtime!( // DeFi Tokens: orml_tokens = 40, Currencies: orml_currencies = 41, - //MultiTransactionPayment: pallet_transaction_multi_payment = 36, + MultiTransactionPayment: pallet_transaction_multi_payment = 42, } ); From 1f57931e9237780758d21a0237a3064b2c7397c6 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Wed, 29 May 2024 12:52:16 -0400 Subject: [PATCH 17/17] save config progress but blocked by pallet impl now which must be changed for security reasons --- evm-template/runtime/src/defi.rs | 73 +++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 16 deletions(-) diff --git a/evm-template/runtime/src/defi.rs b/evm-template/runtime/src/defi.rs index c75eec17..4d83d30b 100644 --- a/evm-template/runtime/src/defi.rs +++ b/evm-template/runtime/src/defi.rs @@ -4,7 +4,8 @@ use frame_system::EnsureRoot; use orml_traits::parameter_type_with_key; use super::{ - Balance, Balances, BlockNumber, Currencies, Runtime, RuntimeEvent, Tokens, WeightToFee, + AccountId, Balance, Balances, BlockNumber, Currencies, Runtime, RuntimeEvent, Tokens, + WeightToFee, }; pub type Amount = i128; @@ -16,7 +17,7 @@ parameter_types! { } parameter_type_with_key! { - pub ExistentialDeposits: |currency_id: AssetId| -> Balance { + pub ExistentialDeposits: |_currency_id: AssetId| -> Balance { Balance::default() }; } @@ -36,35 +37,75 @@ impl orml_tokens::Config for Runtime { } parameter_types! { - pub const GetNativeCurrencyId: AssetId = 0u32; + // TODO: enforce everywhere, including XCM execution + pub const NativeAssetId: AssetId = 0u32; + // NOTE: the underlying impl of `reset_payment_currency` extrinsic assumes that this is not NativeAssetId + // even if we want to use pallet-balances for managing the EVM Asset + // TODO: set `EvmAssetId = NativeAssetId` without violating the assumptions of `reset_payment_currency` extrinsic + // ISSUE #5575 + pub const EvmAssetId: AssetId = 1u32; } impl orml_currencies::Config for Runtime { - type GetNativeCurrencyId = GetNativeCurrencyId; + type GetNativeCurrencyId = NativeAssetId; type MultiCurrency = Tokens; type NativeCurrency = orml_currencies::BasicCurrencyAdapter; type WeightInfo = (); // TODO: generate weights } +// TODO: upstream for all EVM chains that use native 20 byte accounts +pub struct AllEvmAccounts; +impl InspectEvmAccounts for AllEvmAccounts { + /// Returns `True` if the account is EVM truncated account. + fn is_evm_account(account_id: AccountId) -> bool { + true + } + + /// get the EVM address from the substrate address. + fn evm_address(account_id: &impl AsRef<[u8; 32]>) -> EvmAddress { + // unused in pallet-tx-multi-payment + [0u8; 20] + } + + /// Get the truncated address from the EVM address. + fn truncated_account_id(evm_address: AccountId) -> AccountId { + evm_address + } + + /// Return the Substrate address bound to the EVM account. If not bound, returns `None`. + fn bound_account_id(evm_address: AccountId) -> Option { + Some(evm_address) + } + + /// Get the Substrate address from the EVM address. + /// Returns the truncated version of the address if the address wasn't bind. + fn account_id(evm_address: AccountId) -> AccountId { + evm_address + } + + /// Returns `True` if the address is allowed to deploy smart contracts. + fn can_deploy_contracts(evm_address: AccountId) -> bool { + true + } +} + impl pallet_transaction_multi_payment::Config for Runtime { - type AcceptedCurrencyOrigin = EnsureRoot; + type AcceptedCurrencyOrigin = EnsureRoot; type Currencies = Currencies; - // TODO: ensure matches EVM used in `pallet_evm` - type EvmAssetId = evm::WethAssetId; - type EvmPermit = evm::permit::EvmPermitHandler; - // TODO: impl InspectEVMAccounts by Runtime in separate folder - // because we do not require pallet-evm-accounts config - type InspectEvmAccounts = (); - //EVMAccounts - type NativeAssetId = GetNativeCurrencyId; + // ISSUE #5575 + type EvmAssetId = NativeAssetId; + // NOTE: impl EvmPermit for () returns false positive results + // TODO1: replace this impl with dummy patch that returns true negative results + // TODO2: impl EvmPermit and its precompile in a follow up because the precompile written by HydraDX-node assumes we use their 32 byte keys (which we do not) + type EvmPermit = (); + type InspectEvmAccounts = AllEvmAccounts; + type NativeAssetId = NativeAssetId; type OraclePriceProvider = (); - //OraclePriceProvider; type RouteProvider = (); - //Router; type RuntimeEvent = RuntimeEvent; type TryCallCurrency<'a> = pallet_transaction_multi_payment::TryCallCurrency; + // TODO: update weights type WeightInfo = (); - //TODO: run weights in context of this runtime, first add to benchmarking runtime config type WeightToFee = WeightToFee; }